Java类级别类型推断

时间:2009-11-17 04:29:42

标签: java generics

我知道下面的代码无法编译,是的,我可能会疯了。我正在尝试做的是将抽象类(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()

1 个答案:

答案 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();
   }
}