Java 调用外部类重写方法
我有两节课。外部类Java 调用外部类重写方法,java,this,inner-classes,Java,This,Inner Classes,我有两节课。外部类mainnony和一个无注释的内部类,该类重写外部类mainnony方法display(),但使用外部类引用 class Mainannony { public void display(){ System.out.println("java annonymous"); } public static void main(String arg[]) { Mainannony a1=new Mainannony(){
mainnony
和一个无注释的内部类,该类重写外部类mainnony
方法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()
调用外部类方法时,它显示了一个错误非静态变量,该变量不能从静态上下文引用您正在创建的display()
方法覆盖默认实现;您正在创建mainnony
的匿名子类。因此,如果要从匿名类中调用默认实现,可以使用super.display()
。在匿名类之外,就像在main()
方法中一样,仅仅引用匿名实例a1
是不可能的,main
是static
。