Python笔记(十四):类的多态

多态:一种接口,多种实现; 允许将子类类型的指针赋值给父类类型的指针。

封装:隐藏实现细节,使代码模块化;
继承:可以扩展已存在的代码模块(类);
多态:接口重用,为了类在继承和派生时,保证使用“家族”中任一类的实例的某一属性时正确调用;


举例

例如定义一个类:动物
再定义猫,狗

class Animal(object):
    def __init__(self,name):
        self.name = name
    def talk(self):
        pass
class Dog(Animal):
    def talk(self):
        print("Woof,Woof!")
class Cat(Animal):
    def talk(self):
        print("meow")
a = Dog("Alan")
b = Cat("Evan")
a.talk()
b.talk()


>> Woof,Woof!
>> meow

先实例化后,然后分别调用方法
如果想使用animal_talk直接输出呢?

# 再加一句:

def animal_talk(obj):
    obj.talk()

a = Dog("Alan")
b = Cat("Evan")

animal_talk(a)
animal_talk(b)

这样就有了统一的接口,需要谁叫就传谁进来
即一种接口,多种实现;

将该方法放入父类中

class Animal(object):
    def __init__(self,name):
        self.name = name
    def talk(self):
        pass
    def animal_talk(obj):
        obj.talk()

class Dog(Animal):
    def talk(self):
        print("Woof,Woof!")

class Cat(Animal):
    def talk(self):
        print("meow")


a = Dog("Alan")
b = Cat("Evan")
Animal.animal_talk(a)
Animal.animal_talk(b)


>> Woof,Woof!
>> meow
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值