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