Python 继承

1、单继承

单继承
运行结果

子类在继承的时候,在定义类时,小括号()中为父类的名字,父类的属性、方法,会被继承给子类。虽然子类没有定义__init__方法,但是父类有,所以在子类继承父类的时候这个方法就被继承了,所以只要创建对象,就默认执行了那个继承过来的__init__方法。

私有的属性,不能通过对象直接访问,但是可以通过方法访问

私有的方法,不能通过对象直接访问

私有的属性、方法,不会被子类继承,也不能被访问

一般情况下,私有的属性、方法都是不对外公布的,往往用来做内部的事情,起到安全的作用。

2、多继承

Python不仅支持单继承,同时还支持多继承

多继承
运行结果

要想实现多继承,只需在子类的小括号中写多个父类即可。

当父类中有同名方法时如何调用。

例:多个父类中有同名方法

多个父类中有同名方法
运行结果

通过类对象的__mro__属性能够查看子类的继承顺序。

例:查看子类的继承顺序

查看子类的继承顺序
运行结果

子类会按照继承顺序查找要调用的方法或者属性,如果在一个类中找到了,就会停止向上寻找,如果始终没有找到,则会抛出异常。

3、子类重写父类方法

当子类中定义了一个与父类方法名相同的方法时,就会重写父类方法。

例:子类重写父类方法

子类重写父类方法
运行结果

4、子类调用父类方法

子类调用父类方法
运行结果

子类如果需要调用父类方法,需要使用super()来指明调用父类方法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 继承 目标 单继承 多继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继...
    ottox阅读 206评论 0 0
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,597评论 1 32
  • 前言 这是黑马Python培训教程面向对象这一章中的继承(inheritance)部分。 什么是继承(inheri...
    backup备份阅读 894评论 0 3
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 3,107评论 2 9
  • 早春中美好的一天。 一夜安眠。沐浴更衣,丰盛的早餐。坐在洒满阳光的早餐室,神清气爽、怡然恬淡。 泡一杯玫瑰花茶,取...
    岚山微雨阅读 538评论 2 4

友情链接更多精彩内容