![]() |
1
1
在我看来,你对继承的想法是错误的。基类应该封装在任何子类之间共享的所有内容。如果某个东西不是所有子类都共享的,根据定义,它不是基类的一部分。 所以你说的“如果有人走过它会看起来很生气,如果可以,它会吠叫”对我来说毫无意义。“汪汪如果可以”部分不是在所有子类中共享的,因此不应该在基类中实现。
什么
应该
发生的事情是,你想要吠叫的子类
加上
将此功能添加到
这样所有子类都将
|
![]() |
2
2
我想是6。)可能是因为
|
![]() |
3
1
你错过了一个可能性:
定义一个
这消除了派林的抱怨,更重要的是,消除了它抱怨的合法问题。 至于你的其他选择:
剩下2,4.5和5。
我认为在大多数情况下,4.5或5都是正确的选择。它们之间的区别不是实用的,而是概念上的:如果
对于这个玩具的例子,我想我应该使用选项4.5。我认为你提出的大多数玩具例子都是这样的。 然而,我怀疑大多数现实生活中的例子会有很大不同:
|