在Java中涉及继承的多项选择?
问题描述:
考虑以下声明:在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();
但如果是,ē将是正确的答案。
doNothing
接受Dog1, Dog2
作为它的参数。 A Dog2
是Dog1
,因此,您可以使用Dog2
代替Dog1
。
为什么不将代码转储到项目中并查看会发生什么? –
'Dog1 d2 = new Dog2();'似乎是一个不正确的假设。你可能是指'Dog2 d2 = new Dog2();'。否则,这5种方法都不会编译。 – CoronA
我投票结束这个问题作为题外话题,因为提出作业帮助的问题必须包括迄今为止解决问题所做的工作的摘要,以及描述您解决问题的难点。 [源代码](https://*.com/help/on-topic) –