我知道下面的代码无法编译,是的,我可能会疯了。我正在尝试做的是将抽象类(A)的实现(下面的B)作为类(C)的超类,它也扩展了抽象类。我还想将方法覆盖推迟到超类。有点像...
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();
}
}
WHERE ...
C aC = new aC(new B());
aC.get() -> B.get()
aC.do() -> C.do()
aC.action() -> A.action()
答案 0 :(得分:1)
我认为你想使用委托模式。
class C extends A {
private final A delegate;
C(A obj) {
this.delegate = obj;
}
Object get() { return delegate.get() }
Object whatever() {
return action();
}
}