我有两节课。外部类Mainannony
和一个匿名内部类,它覆盖外部类Mainannony
方法display()
,但使用外部类引用。
class Mainannony {
public void display(){
System.out.println("java annonymous");
}
public static void main(String arg[]) {
Mainannony a1=new Mainannony(){
public void display(){
System.out.println("this is the annonymous class");
}
};
a1.display();
}
}
调用内部方法有效。但是,当我尝试使用outerclass.this.method()
调用外部类方法时,它会显示错误non static variable this cannot be referenced from a static context
。
答案 0 :(得分:0)
您正在创建的display()
方法会覆盖默认实现;您正在创建Mainannony
的匿名子类。因此,如果您想在匿名类中调用默认实现,则可以使用super.display()
。在匿名类之外,就像在main()
方法中一样,只有对匿名实例a1
的引用是不可能的。