我知道下面的代码无法编译,是的,我可能疯了。我想做的是将抽象类 (A) 的实现(下面的 B)作为类 (C) 的父类(super class),它也扩展了抽象类。我还想将方法重写推迟到父类(super class)。类似...
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()
最佳答案
我认为您想使用委托(delegate)模式。
class C extends A {
private final A delegate;
C(A obj) {
this.delegate = obj;
}
Object get() { return delegate.get() }
Object whatever() {
return action();
}
}
关于Java 类级别类型推断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1746589/