day6-类多态
1. 概念
多态性:允许将子类类型的指针赋值给父类类型的指针
封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了代码重用。而多态则是为了实现另一个目的:接口重用
遗憾的是,在python不能直接的支持多态,所以我们只能间接的去执行
2. 实例
1 class Animal: 2 3 def __init__(self,name): 4 self.name = name 5 6 def talk(self): 7 print("animal {0} is talk".format(self.name)) 8 9 class Cat(Animal): 10 def talk(self): 11 return "Meow!" 12 13 class Dog(Animal): 14 def talk(self): 15 return "Woof!Woof!" 16 17 # 定义一个调用类的talk方法,调用时传入类的实例 18 # 一个接口,多种形态 19 def animal_talk(obj): 20 print(obj.talk()) 21 22 d = Dog("d1") 23 c = Cat("C1") 24 25 # 调用类的talk方法 26 # 我们期待以这种形式调用 27 Animal.talk(d) 28 Animal.talk(c) 29 30 # 把对象存入列表中 31 all_animal = [d,c] 32 33 # 循环传入对象 34 for animal in all_animal: 35 # 实现类似于Animal.talk(Dog("d1"))这种效果 36 animal_talk(animal) 37 38 39 animal d1 is talk 40 animal C1 is talk 41 Woof!Woof! 42 Meow!

浙公网安备 33010602011771号