定义在java中扩展类的属性

时间:2013-05-18 12:23:18

标签: java android

我有以下课程:

class Foo {
   public void sayHello(){
       System.out.println("Hello");
   }
}

我希望另一个类持有对扩展Foo的类的引用(但不能是Foo)。像这样的东西(错误的语法):

class Bar {
    private <E extends Foo> E  mFoo;
}

这可能吗?如果没有像这样在类名中声明它,我怎么能这样做呢?

class Bar <E extends Foo> {
    private  E  mFoo;
}

1 个答案:

答案 0 :(得分:3)

如果主要观点是E不能是Foo的实例,那么你可以让Foo成为一个可以解决它的抽象类。如果Foo不是抽象的你仍然可以做

public abstract class AbstractFoo extends Foo {
}

然后将E声明为AbstractFoo类型。