反正是有,我可以做这样的事情:的Java扩展一般指定类型
Class extends <T extends ClassB>
你能有一个类,只要该类能够扩展类的一般指定的类必须扩展扩展一个类?
它的语法/结构是什么?
反正是有,我可以做这样的事情:的Java扩展一般指定类型
Class extends <T extends ClassB>
你能有一个类,只要该类能够扩展类的一般指定的类必须扩展扩展一个类?
它的语法/结构是什么?
不,这是不可能的。我认为当你使用泛型并以这种方式指定一个类时,—也不会有多大意义,只有你指定类中的信息。
对于正常使用(例如容器),这是有道理的,因为它可以让您依赖特定的类或接口的方法,同时能够确保附加的类型安全。但是,延伸一类,这不会有多大意义—因为你只能依靠ClassB
的方法,它将功能上相同,只是做Class extend ClassB
。
为了让你的想法变得更有意义,你需要能够接受你定义的类并传入一个类型来“扩展”。但是,这会有许多与多重继承相同的缺陷—如果在您传递给泛型的类中定义了Class
中第一个定义的方法,但是您没有在ClassB
中定义该方法,那么将如何处理?在Java中没有多重继承是一个设计决定,而像这样工作的泛型会违背这一点。
总之,这样的事情要么像多重继承,要么与正常继承相同。
其实ClassB是一个Container,我希望能够访问基类中的Container方法并访问子类中的子类型方法。 – 2011-05-25 05:06:42
我认为,由于类型擦除,你将无法做到这一点。例如,你甚至不能这样做:
class A<T> {
class B extends T {
}
}
只是好奇:你真的想完成什么?你能描述一下,如果它确实存在,你将如何或为什么使用这种能力? – 2011-05-25 04:34:15
我正在尝试做一点MVC类结构,我希望基类View类继承Container方法和属性。但是在扩展类中,我希望类可以通过JFrame进行扩展。 – 2011-05-25 05:09:21