自学内容网 自学内容网

第五章 继承、多态、抽象类与接口 (7)

5.7 多态

        利用多态可以使程序具有良好的扩展性,并可以对所有类对象进行通用的处理。在7.3节中已经学习过子类对象可以被作为父类的对象实例使用,这种将子类对象视为父类对象的做法称为“向上转型”。

        假如现在要编写一个绘制图形的方法 draw(, 如果传入正方形对象就绘制正方形,如果传入圆形对象就绘制圆形,这种场景可以使用重载来实现,定义如下:

public void draw(Square s){}
//绘制正方形的方法
public void draw(Circular c){}
//绘制圆形的方法

        但是这种写法有个问题:正方形和圆形都是图形,这场景细分的重载方式不仅增加了代码量,还降低了“易用度”。如果定义一个图形类,让它处理所有继承该类的对象,根据"向上转型”原则可以使每个继承图形类的对象作为draw(方法的参数,然后在draw0方法中做一些限定 就可以根据不同图使每个继承图形类的对象作为draw(方法的参数,然后在draw0方法中做一些限定 就可以根据不同图形类对象绘制相应的图形。这样处理能够很好地解决代码冗余问题,同时程序也易于维护。


原文地址:https://blog.csdn.net/qq_62387839/article/details/142604147

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!