繁体   English   中英

无法实例化内部类

[英]Cannot instantiate inner class

那是我的代码:

public class A {
    int age;

    void Do() {
        System.out.println("...");
    }

    class B extends A {
    }

    public static void  main(String[] args) {
        B b=new B();
    }
}

错误:

new B();

为什么? 为什么不对?

您已将B声明为A的内部类,因此如果不提供封闭类A的实例,就无法实例化它。

您可以将B的定义移到A之外,以使代码正常工作:

class B extends A
{

}

public class A
{
    int age;

    void Do()
    {
     System.out.println("...");
    }

    public static void  main(String[]args)
    {
        B b = new B();
    }
}

或者,您可以按原样保留类结构,但是创建A的实例以创建B的实例:

B b = new A().new B();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM