class Test {
public static void main(String[] args) {
Animal a = new Dog();
Dog d = new Dog();
d.makeNoise(); // output "Sub"
a.makeNoise(); // output "Sub" then what is use of calling this. why not call d.makeNoise() only.
}
}
abstract class Animal {
public void makeNoise() {
System.out.println("Super");
}
}
class Dog extends Animal {
@Override
public void makeNoise() {
System.out.println("Sub");
}
}
我們必須在這個話題15分鐘討論(15分鐘太長我猜的)我解釋面試官如何動態多態性會隨着a.makeNoise();
的幫助下可以實現,但她仍是說兩者都給予相同的輸出。
a.makeNoise();
輸出「Sub」然後調用這個有什麼用處。爲什麼不叫d.makeNoise()只有
我去了接口,但仍然問題是如果子類引用給出相同的輸出,那麼爲什麼要使用超類的引用。
動態多態性
訪員問題是,
a.makeNoise();
有什麼區別?爲什麼不只在兩個輸出相同的情況下才撥打d.makeNoise();
?
可能的正確答案是什麼?
可能的正確答案是什麼問題? – NPE
究竟是什麼問題? – benzonico
答案似乎是你不懂多態! – John3136