在Java中涉及继承的多项选择?

时间:2017-04-23 16:30:09

标签: java inheritance multiple-choice

考虑以下声明:

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)但我不确定。有人可以向我解释一下吗?感谢。

1 个答案:

答案 0 :(得分:-1)

<强>校正

是答案,因为 E 是答案,Dog1 d2 = new Dog2();应该是变成了Dog2 d2 = new Dog2();

但如果是, E 将是正确答案。

doNothing接受Dog1, Dog2作为其参数。 Dog2Dog1,因此,您可以使用Dog2代替Dog1