在匿名类中调用超级方法

BAR*_*BAR 5 java inheritance

从匿名类调用ParentClass的super方法的正确方法是什么?

在其当前状态中,super指的是Runnable.

public class ChildClass extends ParentClass {

    @Override
    public void myMethod(final double value) {

        new Runnable() {
            @Override
            public void run() {
                super.myMethod(value);
            }
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*ase 14

您可以使用以下代码:

public class ChildClass extends ParentClass {
    @Override
    public void myMethod(final double value) {
        new Runnable() {
            @Override
            public void run() {
                ChildClass.super.myMethod(value);
            }
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果使用`ChildClass.this.myMethod(value)`,它将导致无限循环. (2认同)

Arn*_*lle 5

呼叫 ChildClass.super.myMethod(value);

注意:如果要从中访问实例属性/方法,也可以使用ChildClass.this.myAttribute/ .ChildClass.this.myMethod()ChildClass