调用外类重写方法

时间:2014-09-14 10:55:04

标签: java this inner-classes

我有两节课。外部类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

1 个答案:

答案 0 :(得分:0)

您正在创建的display()方法会覆盖默认实现;您正在创建Mainannony的匿名子类。因此,如果您想在匿名类中调用默认实现,则可以使用super.display()。在匿名类之外,就像在main()方法中一样,只有对匿名实例a1的引用是不可能的。