如何调用父类 mothod



我正在研究运行时多态性,我找到一个这样的例子

class Bike {
void run() {
System.out.println("running");
}
}
class Splender extends Bike {
void run(){
System.out.println("running safely with 60km");
}
public static void main(String args[]){
Bike b = new Splender (); //upcasting
b.run();
}
}

这里自行车类对象 b 可以访问 Splender 的方法运行它没问题, 那么我们可以访问 Bike 的 run(( 方法吗?如果是,那如何?如果不是,那为什么?

不,它被Splender覆盖了。您使用Splender的实例,因此将使用该方法的版本。

但是,您可以在覆盖它时访问它。

@Override
void run() {
super.run();
System.out.println("running safely with 60km");
}

8.4.8.1. 覆盖(通过实例方法(

可以使用包含关键字super的方法调用表达式 (§15.12( 访问重写的方法。限定名或对超类类型的强制转换在尝试访问重写的方法时无效。

最新更新