python多态_Python基础入门18节-第十六节 面向对象如何理解多态

043297cdac7e3eb17d6b6fbfc7c98b8a.png

多态是面向对象的一大特性,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免费课程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值