代码阅读
ManagerTest代码
1、UML图
2、文件第26行e.getSalary(),到底是调用Manager类的还是Employee类的getSalary方法?
根据不同的类调用不同的getSalary方法,第一个staff[0]为Manager类的boss,调用的应该是Manager类的getSalary方法,同理,后两个staff为Employee类,调用的则是Employee类的getSalary方法。
3、Manager类的构造函数使用super调用父类的构造函数实现了代码复用,这样有什么好处?为什么不把父类构造函数中的相关代码复制粘贴到Manager的构造函数中,这样看起来不是更直观吗?
这样做可以简化代码量,是代码更加简洁明了,如果将相关代码复制粘贴就会显得很复杂多余。
4、该代码中哪里体现了多态的好处?请说明。
子类中代码的覆盖体现了多态。 多态的好处是减少了大量的代码,提高效率,易于修改,更加灵活。