我正在为我的OOP决赛学习,遇到一个让我有些困惑的问题。问题是“解释为什么通过公开继承List类来构建Stack类是一种较差的方法。请描述一个更好的解决方案。”
我不确定我的答案是否正确,但这是因为“公开继承...”吗?而且最好改为私有继承,这样除Stack之外的其他类都不知道继承?
如果派生类公开地从基类继承,则派生类是基类的实例,可能具有某些额外的功能或重写的功能。对于堆栈和列表,堆栈不是列表-从逻辑上讲,它不执行搜索,连接,反转等列表操作-因此从列表继承不是一个好主意。
您可以在此处使用私有继承,但这并不是一个特别优雅的解决方案。相反,您可以通过让堆栈将列表作为私有数据成员保存来实现堆栈。这就是为什么您经常听到“在继承方面偏爱组成(拥有私有数据成员)”的原因。
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句