1
我知道下面的代码不能编译,是的,我可能会疯了。我想要做的是将抽象类(A)的实现(B)放在类(C)的超类中,该类也扩展了抽象类。我还想推迟超类的方法覆盖。喜欢的东西...Java类级别类型推断
abstract class A {
abstract Object get();
abstract Object do();
Object action();
}
class B extends A {
B(B obj) {
super(obj.getName()...)
}
Object get() { ... }
Object do() { ... }
}
C<T> extends <T extends A> {
C(<T extends A> obj) {
super(obj)
}
Object do() { ... }
Object whatever() {
return action();
}
}
哪里...
C aC = new aC(new B());
aC.get() -> B.get()
aC.do() -> C.do()
aC.action() -> A.action()
不,你不能像Java那样动态地定义你的类结构。如果你定义了一个接口,你可以使用组合来实现这一点,以及一个动态代理。但这依赖于反思,这可能会或可能不会成为问题。 – Yishai 2009-11-17 04:34:37
是的,我考虑过这个。这有点牵扯,特别是因为仿制药就在那里。我会看看这样的事情是否即将到来。谢谢。 – cwall 2009-11-17 23:59:11