继承多态问题

2017-09-15  本文已影响5人  维乾

1.为什么用子类对象去实例化接口 是 A a = new B();

原因是面向接口编程,提高代码维护灵活性及移植性!


题目

System.out.println(a2.show(b));  结果是“B And A”,为什么不是 “B And B”或“A And A”呢?

已知a2的类型是A,实际对象是B。

那么 a2.show(b) 以根据class A的定义来选择方法,自然是进入show(A)方法。 正好 B 又覆盖了 show(A)方法,所以最终执行的是 B.show(A) 方法。

上一篇下一篇

猜你喜欢

热点阅读