Python中的多态性


Python中的多态性

面向对象编程的三大特性:封装性、继承性、多态性。下面用简单的比喻和举例带大家一起了解python语言中的多态性。

举例类比

比如上课时,老师对全班同学说:“大家把自己的名字写在各自的作业本上”,这时候,张三会在张三的本子上写上“张三”的名字,李四会在李四的作业本上写上“李四”的名字,王五会在王五的作业本上写上“王五”的名字,而老师口中的“自己”,此时在这里代表了班上不同的人,而写名字这件事,大家也都写上了各自的名字。这就是多态性。
延伸到python中,同一个变量“自己”,调用同一个方法“写名字”,但是不同类的对象(张三、李四、王五)在执行“写名字”函数时,执行的是各自“写名字”的方法。

代码演示

下面展示一些 多态性代码示例


```python
# 代码示例
class Animals(object):
    def run(self):
        print ("Animal is running")

class Dog(Animals):
    def run(self):
        print ("Dog is running")

class Cat(Animals):
    def run(self):
        print ("Cat is running")

Dog和Cat继承了Animals,同时继承了run方法,并且各自做了修改
当同一个对象a,指向不同的对象示例时,会执行各自的run()方法

a = Animals()
a.run()

a = Dog()
a.run()

a = Cat()
a.run()

输出结果:
在这里插入图片描述

代码可见:同一个变量在执行同一个函数时,变量名相同,参数相同的情况下,会根据a指向的实例对象不同,在程序执行时调用不同的run()方法,这就是多态性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值