python(类多态)
一、多态
- (以封装和继承为前提)不同的子类调用相同的方法,产生不同的结果
class Duck(object): # 鸭子类 def fly(self): print("鸭子沿着地面飞起来了") class Swan(object): # 天鹅类 def fly(self): print("天鹅在空中翱翔") class Plane(object): # 飞机类 def fly(self): print("飞机隆隆地起飞了") def fly(obj): # 实现飞的功能函数 obj.fly() duck = Duck() fly(duck) swan = Swan() fly(swan) plane = Plane() fly(plane) ===运行结果:=================================================================================== 鸭子沿着地面飞起来了 天鹅在空中翱翔 飞机隆隆地起飞了
class Dog(): def __init__(self,name): self.name = name def game(self): print('%s 蹦蹦跳跳的玩耍...' %self.name) class Xiaotianquan(Dog): # 父类方法不能满足子类的需求的时候,重写game方法 def game(self): print('%s 飞到天上玩...' %self.name) class Person(object): def __init__(self,name): self.name = name def game_with_dog(self,dog): print('%s 和 %s 快乐的玩耍' %(self.name,dog.name)) # 1).创建一个狗对象 wangcai = Dog('旺财') # wangcai = Xiaotianquan('飞天神狗') # 2).创建一个小明对象(小明是一个人) xiaoming = Person('小明') # 3).让小明和狗玩 xiaoming.game_with_dog(wangcai)
二、Python中多态的特点
  1、只关心对象的实例方法是否同名,不关心对象所属的类型;
  2、对象所属的类之间,继承关系可有可无;
  3、多态的好处可以增加代码的外部调用灵活度,让代码更加通用,兼容性比较强;
  4、多态是调用方法的技巧,不会影响到类的内部设计。
三、拓展
Java中多态性的表现: 多态性,可以理解为一个事物的多种形态。同样python中也支持多态,但是是有限的的支持多态性,主要是因为python中变量的使用不用声明,所以不存在父类引用指向子类对象的多态体现,同时python不支持重载。在python中 多态的使用不如Java中那么明显,所以python中刻意谈到多态的意义不是特别大。
作者:Evan0813
微信:ZhengYing8887
出处:https://www.cnblogs.com/ZhengYing0813/
备注:本文版权归作者所有,欢迎转载和添加作者微信探讨技术,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号