Python基础学习011——继承、多态与重写

编程入门 行业动态 更新时间:2024-10-11 13:25:04

Python基础学习011——继承、多态与<a href=https://www.elefans.com/category/jswz/34/1769232.html style=重写"/>

Python基础学习011——继承、多态与重写

# 面向对象的三大特征:继承,封装,多态
# 封装:根据职责,将属性和方法封装到一个类中,即类的定义过程
# 继承:实现代码的重用,相同代码不需要反复编写
# 多态:不同的对象调用相同的方法,产生不同的效果,增加代码灵活度
# ---------------------------------------------------------------------
# 继承:class 类名(父类名):父类(基类)子类(派生类)
# 子类继承父类后,子类的对象可以直接使用父类的 公有属性
# 没有写父类的类,实际也有父类object,object是python中的最原始的类
"""案例:定义一个animal类,方法eat.定义一个dog类,继承animal类,在定义一个dark方法定义一个xiaotian_dog类,定义一个fly方法备注:只有一个父类的继承方式叫作单继承"""class Animal:def eat(self):print('吃东西')ani = Animal()
ani.eat()
print('-' * 20)class Dog(Animal):def bark(self):print("汪汪汪")dog = Dog()
dog.eat()
dog.bark()
print('-' * 20)class XiaoTianDog(Dog):def fly(self):print('会飞啦')xtd = XiaoTianDog()
xtd.eat()
xtd.bark()
xtd.fly()
print('-' * 20)# ------------------------------------------------------------
# 重写:在子类中定义了与父类名字相同的方法,父类中的方法不能满足子类对象需求,所以要重新
# 重写后子类调用自己的方法,不再调用父类的方法
# 重写方式:覆盖与扩展.覆盖:父类中的功能完全抛弃.扩展:父类中的功能还有,只是添加一些新功能
# 覆盖:定义同名方法,直接在方法中写新的代码
class Dog1(Dog):def bark(self):"""覆盖式重写Dog类的bark方法,汪汪汪改成不需要叫"""print('神仙不需要叫')xtq = Dog1()
xtq.bark()
print('-' * 20)# 扩展:定义同名方法,在合适的地方调用父类中的方法super().方法
class Dog2(Dog):def bark(self):"""扩展式重写Dog类的bark方法,汪汪汪完说人话"""super().bark()      # super直接继承于object类print("说人话")xtq2 = Dog2()
xtq2.bark()
print('-' * 20)# ---------------------------------------------------------------------------
# 多态:同一个方法传入不同的对象,产生不同的执行结果
# 例如Dog1和Dog2,分别重写了bark方法,dog1的对象调用bark和dog2的对象调用bark方法,会有不同的结果
# 对象调用哪个方法,就去自己类找这个方法,不存在就找父类,还不存在就找父类的父类...

更多推荐

Python基础学习011——继承、多态与重写

本文发布于:2023-11-17 03:01:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1637785.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:重写   基础   多态   Python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!