Python:多态总结

#多态:多种形态、多种状态,同一种行为的对于不同的子类【对象】有不同的行为表现
#多态必须发生在父类和子类之间、子类重写父类的方法
class Animal:
    '''
    父类
    '''
    def say_who(self):
        print('我是一只动物')
        pass
    pass
class Duck(Animal):
    '''
    子类
    '''
    def say_who(self):  #重写父类的方法
        print('我是一只漂亮的鸭子')
        pass
    pass
class Dog(Animal):   #继承父类
    def say_who(self):     #重写父类的方法
        print('我是一只可爱的小狗')
        pass
    pass
class Cat(Animal):   #继承父类
    def say_who(self):     #重写父类的方法
        print('我是一只毛茸茸的小猫')
        pass
    pass

class People:
    def say_who(self):
        print('我来自深圳')
    pass
duck1=Duck()
duck1.say_who()
dog=Dog()
dog.say_who()
cat=Cat()
cat.say_who()
people=People()
people.say_who()


print('--------------------------------')

def commonInvoke(obj):
    '''
    统一调用
    :param obj: 对象的实例
    :return:
    '''
    obj.say_who()
    pass
listObj=[Duck(),Dog(),Cat(),People()]    #鸭子类型
for item in listObj:
    '''
    循环调用函数
    '''
    commonInvoke(item)


#总结:增加程序的灵活性、增加程序的扩展性

#鸭子类型:是动态类型的一种风格,在这种风格中,一个对象的有效的语义,不是由继承子特定的类
# 或实现特定的接口,而是有当前的方法和属性的集合决定的。
#鸭子测试:当一只鸟走起路来想鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被叫做鸭子
#在鸭子类型中,关注的不是对象类型的本身,而是它是如何使用的

运行结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值