尝试在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();
答案 0 :(得分:10)
这里的内部类不是静态的,所以你需要创建一个外部类的实例,然后调用new,
A a = new Test2().new C();
但在这种情况下,你可以使内部类静态,
static class C extends B implements A
那么可以使用,
A a = new C()
答案 1 :(得分:4)
要实例化内部类,必须首先实例化外部类。然后,使用以下语法在外部对象中创建内部对象:
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
所以你需要使用:
A a = new Test2().new C();
答案 2 :(得分:1)
你应该这样做
A a = new Test2().new C();