[英]How to instantiate inner class of abstract class - java
考慮
public abstract class Foo{
///some code
class Foo1 extends Foo
{
//// some code
}
class Foo2 extends Foo
{
///// some code
}
}
如何創建內部類的對象?
要實例化嵌套的非靜態(內部)類,您需要一個封閉類的實例。
但是您的封閉類是抽象的,因此無法實例化它。 你該怎么辦?
如果確實需要非靜態嵌套類,則唯一的選擇是擴展抽象類,並使用擴展類的實例實例化內部類。
public abstract class Foo {
public class Foo1 extends Foo {
}
public static class FooImpl extends Foo {
}
public static void main(String[] args) {
Foo foo = new FooImpl();
Foo1 foo1 = foo.new Foo1();
}
}
您需要另一個擴展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();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.