当前位置: 首页 > 后端技术 > Python

Python面向对象的特性——多态(基本概念、代码示例)

时间:2023-03-26 14:05:15 Python

1.面向对象的三大特性:1)封装:将属性和方法按照职责封装到一个抽象类中定义类的指南2)继承:Inheritance实现代码复用,相同的代码不需要重复编写设计类的技巧子类针对自己独特的需求编写特定的代码3)多态性:不同的子类对象调用同一个父类方法,导致执行结果不同多态性可以增加代码对的灵活性。继承和重写父类方法的前提是调用方法的技巧,不会影响类的内部设计。2.多态案例演练:需求:1.在Dog类中封装方法gamel普通狗只能简单玩定义小天拳继承Dog,重写游戏方法小天拳也会在天空中玩定义person类,并封装aplayingwithdogs的方法l方法内部,直接让dog对象调用game方法1.部分代码:classDog(object):def__init__(self,name):self.name=namedefgame(self):print("%s正常玩----"%self.name)classXiaoTianQuan(Dog):defgame(self):print("%s在天堂玩----"%self.name)classPerson(object):def__init__(self,name):self.name=namedefgame_with_dog(self,dog):print("%s和%s玩得很开心"%(self.name,dog.name))#让狗玩dog.game()#1.创建狗对象xiaobai=Dog("小白")#2.创建小霞对象xiaoxia=Person("小霞")#3.让小霞调用方法玩狗xiaoxia.game_with_dog(xiaobai)执行onresult:2.继续下一段代码:把普通小白注释掉#xiaobai=Dog("Xiaobai")添加一个会飞的小白,XiaoTianQuan类再创建一个小白对象,其他代码不变xiaobai=XiaoTianQuan("FlyingXiaobai")修改部分和执行结果如图:case概要:在Person类,只需要让dog对象调用game方法即可,不需要关心具体是什么狗,因为game方法定义在Dog父类中。程序执行时,会传入不同的狗对象参数,产生不同的执行效果。更多相关Python教程,可以到Python自学网(www.wakey.com.cn/)从基础开始入门免费课程,逐步深入学习python全栈系统课程,适合初学者到精通全栈开发。