Java 如何调用内部类&x27;来自静态main()方法的s方法

Java 如何调用内部类&x27;来自静态main()方法的s方法,java,polymorphism,inner-classes,Java,Polymorphism,Inner Classes,尝试在父类中创建1个接口和2个具体类。这将限定封闭类为内部类 public class Test2 { interface A{ public void call(); } class B implements A{ public void call(){ System.out.println("inside class B"); }

尝试在父类中创建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()方法。 现在我遇到了一个问题:
aa=newc()

您应该这样做

 A a = new Test2().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();
请参阅