繁体   English   中英

调用外部类的重写方法

[英]calling outer class overridden method

我有两节课。 外部类Mainannony和一个匿名内部类,它覆盖外部类Mainannony方法display()但使用externalclass类引用。

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错误, non static variable this cannot be referenced from a static context该错误。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM