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

sun*_*dev 6 java polymorphism inner-classes

尝试在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();

       }
}
Run Code Online (Sandbox Code Playgroud)

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

Qia*_*Jin 10

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

A a = new Test2().new C();
Run Code Online (Sandbox Code Playgroud)

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

static class C extends B implements A
Run Code Online (Sandbox Code Playgroud)

那么可以使用,

A a = new C()
Run Code Online (Sandbox Code Playgroud)