如果我们已经拥有超类的子类,我们如何调用超类方法?

Vin*_*boj 2 java

我的问题是,如果有一个由父类扩展的子类,并且由祖父类扩展,那么子类如何直接访问祖父的方法.

Ste*_*n C 6

最好通过一个例子来说明:

public class GF {
    public void one() { ... }
    public void two() { ... }
}

public class F extends GF {
    public void two() { ... }
}

public class C extends F {
    public void one() {
        super.one(); // Calls one in GF
    }

    public void two() { 
        super.two(); // Calls two in F
    }
}
Run Code Online (Sandbox Code Playgroud)

从子类中调用重写方法的语法是super.method(....).但是你只能这样做来调用第一级重写方法.如果该方法本身是覆盖,则无法调用第二级覆盖; 例如,没有C.two()办法直接打电话GF.two().你不能反思地做,甚至JVM字节码都不允许它.