Python入门笔记—第九章【面向对象之OOP(第三部分,多态&多态性)】

第九章:面向对象之OOP(第三部分,多态&多态性)


2.5 多态

- 指一类事物或对象在不同的情况下有不同的状态

    - 如:序列状态下有多种形态:列表,元祖,集合,字典等

    - 如:动物有多种形态:人类,猪类,狗类等

- 多态不是语法,是一种设计思想

代码实例:

#多态
class Animal():
    def run(self):

        pass
class Person(Animal):
    def run(self):
        print("Walking")

class Dog(Animal):
    def run(self):
        print("Walking")

class Pig(Animal):
    def run(self):
        print("Walking")

per = Person()
dog = Dog()
pig = Pig()

per.run()
dog.run()
pig.run()

2.6 多态性

- 向不同的对象发送同一条消息(函数),不同的对象在接收时会产生不同的行为,即:同一种调用方式,不同的执行结果

代码实例:

#多态性
class Animal():
    def run(self):

        pass
class Person(Animal):              #人类
    def talk(self): 
        print("Say Hello")

class Dog(Animal):                 #狗类
    def talk(self):
        print("Say Wangwang")

class Pig(Animal):                 #猪类
    def talk(self):
        print("Say Honghong")


def talk(animal):            #此处只定义了一个函数
    animal.talk()
    

per = Person()
dog = Dog()
pig = Pig()

talk(per)                     #当使用同一种调用方式时,出现不同的结果,称之为多态性
talk(dog) 
talk(pig)

结果:

Say Hello
Say Wangwang
Say Honghong

2.6.1 使用多态性的好处

- 增加了程序的灵活性。不论对象千变万化,都是使用同一个方法(函数)调用

- 增加的程序的可扩展性。使用Animal继承的一个新类,无需去更改原本的代码,还是使用函数talk()去调用

2.7 多态和多态性的区别

- 多态:从定义角度上看

- 多态性:从调用(执行)角度上看

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值