繁体   English   中英

如何从静态main()方法调用内部类的方法

[英]how to call inner class's method from static main() method

尝试在Parent类中创建1个接口和2个具体类。 这将使封闭类成为内部类。

public class Test2 {

       interface A{
             public void call();
       }

       class B implements A{
             public void call(){
                   System.out.println("inside class B");
             }
       }

       class C extends B implements A{
             public void call(){
                   super.call();
             }
       }


       public static void main(String[] args) {
              A a = new C();
              a.call();

       }
}

现在我不确定如何在静态main()方法中创建类C的对象并调用类C的call()方法。 现在我遇到了问题: A a = new C();

这里的内部类不是静态的,所以你需要创建一个外部类的实例,然后调用new,

A a = new Test2().new C();

但在这种情况下,你可以使内部类静态,

static class C extends B implements A

那么可以使用,

A a = new C()

要实例化内部类,必须首先实例化外部类。 然后,使用以下语法在外部对象中创建内部对象:

OuterClass.InnerClass innerObject = outerObject.new InnerClass();

所以你需要使用:

A a = new Test2().new C();

请参阅Java教程

你应该做这个

 A a = new Test2().new C();

暂无
暂无

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

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