考慮以下聲明:在Java中涉及繼承的多項選擇?
public class Dog0
{ public void doNothing(Dog1 a, Dog2 b) {} }
public class Dog1 extends Dog0 {}
public class Dog2 extends Dog1 {}
下列初始化出現在不同的類:
Dog0 d0 = new Dog0();
Dog1 d1 = new Dog1();
Dog1 d2 = new Dog2();
以下哪項是doNothing正確的電話嗎?
a) d0.doNothing(d0, d0);
b) d1.doNothing(d1, d1);
c) d1.doNothing(d2, d1);
d) d2.doNothing(d0, d0);
e) d2.doNothing(d2, d2);
我認爲答案是e)但我不確定。有人可以向我解釋這一點嗎?謝謝。
爲什麼不將代碼轉儲到項目中並查看會發生什麼? –
'Dog1 d2 = new Dog2();'似乎是一個不正確的假設。你可能是指'Dog2 d2 = new Dog2();'。否則,這5種方法都不會編譯。 – CoronA
我投票結束這個問題作爲題外話題,因爲提出作業幫助的問題必須包括迄今爲止解決問題所做的工作的摘要,以及描述您解決問題的難點。 [源代碼](https://stackoverflow.com/help/on-topic) –