小编kir*_*ilv的帖子

在重写方法内的匿名内部类中调用super方法

想象一下,我们有一个班级:

class A {
  public void m() {
     System.out.println("A - > m()");
  }
}
Run Code Online (Sandbox Code Playgroud)

......我想覆盖的方法m对类创建使第二子类B来扩展A.

public static void main(String[] args) {
    A a = new A() {
        @Override
        public void m() {
            System.out.println("Override - > m()");
            new Thread(new Runnable() {
                @Override
                public void run() {
                   // I want to be able to call the super method.
                   // This is illegal!
                   A.super.m();
                }
            }).start();
        }
    };
    a.m();
}
Run Code Online (Sandbox Code Playgroud)

目前我的解决方案是创建一个调用的私有方法 super.m()

   A a = …
Run Code Online (Sandbox Code Playgroud)

java class

17
推荐指数
1
解决办法
5457
查看次数

标签 统计

class ×1

java ×1