使用子类对象访问超类函数

bdh*_*har 5 java inheritance

我有一个子类的对象扩展其超类.子类中有一个重写方法,可以使用该对象调用.是否可以使用子类对象调用超类的函数?

package supercall;

public class Main {

    public static void main(String[] args) {
        SomeClass obj = new SubClass();
        obj.go();   //is there anything like, obj.super.go()?
    }

}

class SomeClass {
    SomeClass() {

    }
    public void go() {
        System.out.println("Someclass go");
    }
}

class SubClass extends SomeClass {
    SubClass() {

    }
    @Override
    public void go() {
        System.out.println("Subclass go");
    }
}
Run Code Online (Sandbox Code Playgroud)

考虑上面的代码.

在这里打印

子类去

.相反,我必须打印

超级去

.

Mic*_*rdt 16

不,这是不可能的,如果你认为你需要它,重新考虑你的设计.覆盖方法的重点是替换其功能.如果一个不同的类对该类的内部工作知之甚少,那么你就完全杀了封装.