Java 中涉及继承的多项选择?
Multiple Choice Involving Inheritance in Java?
考虑以下声明:
public class Dog0
{ public void doNothing(Dog1 a, Dog2 b) {} }
public class Dog1 extends Dog0 {}
public class Dog2 extends Dog1 {}
以下初始化出现在不同的 class:
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) 但我不确定。有人可以向我解释一下吗?谢谢
更正
None 是答案,因为 E作为答案,Dog1 d2 = new Dog2();
应该变成Dog2 d2 = new Dog2();
但如果是,E 将是正确答案。
doNothing
接受一个 Dog1, Dog2
作为它的参数。 Dog2
是 Dog1
,因此,您可以用 Dog2
代替 Dog1
。
考虑以下声明:
public class Dog0
{ public void doNothing(Dog1 a, Dog2 b) {} }
public class Dog1 extends Dog0 {}
public class Dog2 extends Dog1 {}
以下初始化出现在不同的 class:
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) 但我不确定。有人可以向我解释一下吗?谢谢
更正
None 是答案,因为 E作为答案,Dog1 d2 = new Dog2();
应该变成Dog2 d2 = new Dog2();
但如果是,E 将是正确答案。
doNothing
接受一个 Dog1, Dog2
作为它的参数。 Dog2
是 Dog1
,因此,您可以用 Dog2
代替 Dog1
。