关于第五章中介绍继承及方法重新的例子:Employee、Manager两个类的toString方法的异议
Manager类中的toString方法写到:return super.toString() + "[bonus:" + bonus + "]";直接调用父类Employee类中的toString方法,
但是父类中的toString方法为:return getClass().getName() + " [ name:" + name + ",salary:" + salary + ",hireDay:" + hireDay + " ]";
父类中的方法直接调用了salary,但此salary未加上bonus奖金参数,而Manager类中的奖金参数为原salary + bonus。
所以说,Manager类的中toString方法忽略了子类Manager重写了getSalary()方法这一事实。
本文探讨了在Java中使用继承和方法重写时容易出现的一个常见误区。具体来说,文章分析了Manager类如何错误地处理了从父类Employee继承的toString方法,以及为何忽略子类重写的getSalary方法会导致问题。

被折叠的 条评论
为什么被折叠?



