请教一个类继承设计的问题
项目中使用了第三方库,提供了一些类,有这样的继承关系,基类Animal,有多个派生类,比如FlyingAnimal、RunningAnimal等等。

而我在FlyingAnimal、RunningAnimal等类中又派生了自己的类,比如Bird、Dog等等。

现在的问题是,Animal中有一个虚函数eat(),我要重载并应用到Bird、Dog等所有自己实现的类中,这段代码是通用的,所以我想增加一层继承关系,写一遍eat(),而不是在Bird::eat()、Dog::eat()中各写一遍。但是想了想发现不是很好改,因为第三方库中Animal、FlyingAnimal、RunningAnimal的继承关系是不能变的。请教大家有没有好的方法。
相关推荐
C++不能继承的类
C++中使类不能继承,文中详细介绍了如何创建一个可以不能被继承的类
C++中如何使类不能继承
如果大家熟悉java的话应该知道java中有一种类不能被继承,那是final类。这种类有很多用处,尤其是在大的项目中控制类的继承层次。使子类数量不至于爆炸。在使用了多继承的类层次中这也是防止出现菱形继承层次结构的一个好办法。要实现一个不能被继承的类有很多方法。 主要的思路是使子类不能构造父类的部分,这样子类没有办法实例化整个子类。这样限制了子类的继承。所以我们可以将父类的构造函数声明成为私有的,但是这样父类不不能实例化。我想可以添加一个静态帮助函数来进行构造。虽然这样很简陋。但是这的确是一种解决方法。 可是如果只有这个方法能够解决,那么C++实在是太不灵活了。而且这也不值得写一
Python面向对象类继承和组合实例分析
主要介绍了Python面向对象类继承和组合,结合实例形式分析了Python3面向对象继承的原理、用法以及继承与组合相关使用技巧,需要的朋友可以参考下
详解java为什么不允许类多重继承却允许接口多重继承
主要介绍了java为什么不允许类多重继承却允许接口多重继承,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
person类派生一个teacher再从它派生一个student类
设计一个person类,它包括编号和姓名的输入输出,从它派生一个teacher类用于满足教师数据的操作,再从它派生一个student类,增加性别和班号的输入输出,然后从student类派生出大学生类unstudent和研究生类graduate。分别实现大学生和研究生数据的操作,最后由graduate类和teacher类派生出博士后类postdoctor,这些类的继承关系即类层次如图:


