如何实例化抽象类的内部类 - java

时间:2017-01-09 08:11:57

标签: java instantiation inner-classes

考虑

public abstract class Foo{

    ///some code

    class Foo1 extends Foo
    {
        //// some code
    }

    class Foo2 extends Foo
    {
        ///// some code 
    }
}

如何创建内部类的对象?

2 个答案:

答案 0 :(得分:1)

要实例化嵌套的非静态(内部)类,需要一个封闭类的实例。

但是你的封闭类是抽象的,所以你不能实例化它。你应该怎么做?

如果你真的需要非静态嵌套类,那么唯一的选择是扩展抽象类,并使用扩展类的实例来实例化内部类。

$page_url

答案 1 :(得分:-1)

你需要另一个扩展Foo的顶级类:

class Foo3 extends Foo {
  Foo foo;

  Foo3(){
   foo= new this.Foo2();
  }
}

或声明static内部类:

public abstract class Foo{

    ///some code

    class Foo1 extends Foo
    {
        //// some code
    }

    class Foo2 extends Foo
    {
        ///// some code 
    }

    static class Foo3 extends Foo {
      Foo foo;

      Foo3(){
       foo= new this.Foo2();
      }
    }
}