day18-1 多态

多态

多态性是允许你将父对象设置成为一个或者更多的它的子对象相等的技术。赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作,简单的说就是允许将子类类型的指针赋值给父类类型的指针

多态的作用。。我们知道封装可以隐藏实现细节,使得代码模块化。继承可以扩展已经存在的代码块。他们的目的都是为了-----代码的重用。而多态则是为了另一个实现母目的,接口重用。多台的做用途,就是为了类在继承和派生的时候,保证使用家谱中的任一类的实例的某一属性的正确调用

python不直接支持多态,但可以间接实现

 1 class Animal(object):
 2 
 3     def __init__(self,name):
 4         self.name = name
 5 
 6     @staticmethod
 7     def animal_talk(obj):
 8         obj.talk()     #
 9 
10 class Cat(Animal):
11     def talk(self):
12         print("Miao")
13 
14 class Dog(Animal):
15     def talk(self):
16         print("WOWO!")
17 
18 # def animal_talk(obj):
19 #     obj.talk()     # 伪多态
20 
21 d = Dog("Rich")
22 c = Cat("yang")
23 
24 
25 # print(d.talk())
26 # print(c.talk())
27 
28 c.animal_talk(c)
29 d.animal_talk(d)
30 # 
31 # Miao
32 # WOWO!
原文地址:https://www.cnblogs.com/yfjly/p/9825012.html