5
如何实现RealNumber和ComplexNumber继承?
希望不是太学术... 假设我的SW库中需要实数和复数。 根据is-a(或here)关系,实数是复数,其中复数虚部中的b就是0。 另一方面,我的实现是,该子对象扩展父对象,因此在父对象RealNumber中,我将拥有实部,而子对象ComplexNumber将添加虚构图。 还有一种观点认为继承是邪恶的。 我记得像昨天一样,当我在大学学习OOP时,我的教授说,这不是继承的一个很好的例子,因为这两者的绝对值是用不同的方式计算的(但为此我们有方法重载/多态主义,对吗?)。 。 我的经验是,我们经常使用继承来解决DRY,因此,我们经常在层次结构中人工构造抽象类(由于名称不能代表真实世界中的对象,因此经常很难找到名称)。