多态是面向对象的一大特性,Python本身也是一门多态性的语言。在Python中要实现多态,还是得借助于上节提到的继承。
假设有这么一个场景,在夏季我们可以看到荷花、牡丹花、太阳花,夏天一到这些花全都开放了。这些花我们就将它理解多态,花的多种形态。下面通过代码来实现这个场景:
1.定义一个鲜花类
class Flower: def blossom(self): print('')
2.定义荷花类
class Lotus(Flower): def blossom(self): print('荷花开了!')
3.定义牡丹花类
class Peony(Flower): def blossom(self): print('牡丹花开了!')定
4.定义太阳花类
class Sunflowe(Flower): def blossom(self): print('太阳花开了!')
可以看到荷花、牡丹花、太阳花都继承自鲜花类,并且实现了各自的blossom方法。
当分别以这三个子类创建对象的后,调用相应的父类的blossom方法,则优先使用子类中重写的方法,此时产生了三种不同的输出结果
牡丹花开了!荷花开了!太阳花开了!
为了进一步说明多态的好处,现定义一个函数
def mainflower(flower): flower.blossom();
调用这个函数
mainflower(Peony())mainflower(Lotus())mainflower(Sunflowe())
可以看到传入的这个函数的参数,是牡丹花、花花、太阳花的对象,可以看看运行的结果:
牡丹花开了!荷花开了!太阳花开了!
同样是执行了blossom()方法,可以看到传入不同的子类对象,输出不同的效果,这就是多态。
更多关于Python的精彩,欢迎点击右上角“关注”红色按钮,关注小编获得更多的Python免费课程。