【发布时间】:2012-09-15 15:06:25
【问题描述】:
我在这个例子中说明了我的问题
class Car {
public void start(){
System.out.println("Car Started!!!");
}
}
class Mercedes extends Car {
public void start(){
System.out.println("Mercedes Started!!!");
}
}
现在,在我的主程序中,我写
Mercedes m = new Mercedes();
m.start();
它打印:Mercedes Started!!!
如何使用同一个对象调用Car类的start()方法,这样输出就可以了
汽车启动了!!!.
编辑:
其实这是在我参加的一次采访中被问到的。我给出了 super 关键字答案。但面试官否认了。他说他会给我一个提示并说虚拟功能。我不知道如何使用该提示。
【问题讨论】:
-
虚拟功能?在 Java 中,默认情况下,所有非静态方法都是虚函数,除非它们是
final或private(或包私有作为边缘情况。) -
我猜面试官试图欺骗我来了解我如何处理这种情况
-
虚函数是一个函数,它的行为可以在继承类中被具有相同签名的函数覆盖,我猜大多数解决方案都使用这个属性。
标签: java inheritance