第九章:面向对象之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 多态和多态性的区别
- 多态:从定义角度上看
- 多态性:从调用(执行)角度上看