水果,苹果香蕉多态的实现

苹果橘子的问题,先看需求:有个只进不出的盒子,水果有两种苹果和香蕉,原始重量分别是50、30。放入盒中,水分丢失,重量减轻,分别减轻4、3,直到达到自身3/5不再轻。

首先我先整理了类的关系

可以看出,盒子的主要功能为:一天前的总重量、输出苹果数量、输出橘子数量,输出水果减轻的总重量、当前的总重量。那么在用户界面,我们首先需要实例化一个FruitBox对象,在调用对象中的方法(AddFruit,PassOneDay等)实现功能,重点则是在调用方法事,所直接使用的为Fruit类中的方法,但是执行的却是Orange或者Apple中的方法,这就是本次的主题:多态。

首先我们在Fruit中是没有具体的方法实现的,只有两个空的方法,在对象具体调用的时候,派生类(Apple)自动重写了基类(Fruit)中的方法,实现了具体的功能。这样的好处是在调用的时候只需要调用一个基类,就能根据不同的对象自动实现想要的功能,避免了大量重复的代码。

发布了40 篇原创文章 · 获赞 10 · 访问量 7139

猜你喜欢

转载自blog.csdn.net/xyzyhs/article/details/98589918