Python3学习Python基础

Python 面向对象 - 03 继承和方法的重写

2019-03-03  本文已影响26人  flowerflower
🤩🤩.jpg

目录
一、单继承
1.1 继承的概念
1.2 继承的语法
二、方法的重写
2.1 应用场景
2.2 覆盖父类的方法
2.3 对父类方法进行扩展
2.4 父类的私有属性和私有方法
三、多继承
3.1 多继承的概念
3.2 多继承的语法
3.3 多继承的使用注意事项
3.4 新式类与旧式(经典)类

一、单继承

1.1 继承的概念

继承的概念子类 拥有 父类 的所有 方法属性

图片.png

1.2 继承的语法

class 类名(父类名):
    pass

二、方法的重写

2.1 应用场景

2.2 覆盖父类的方法

2.3 对父类方法进行扩展

关于 super
调用父类方法的另外一种方式(知道)
    父类名.方法(self)

提示

2.4 父类的私有属性和私有方法

  1. 子类对象 不能 在自己的方法内部,直接 访问 父类的 私有属性私有方法
  2. 子类对象 可以通过 父类公有方法 间接 访问到 私有属性私有方法
  • 私有属性、方法 是对象的隐私,不对外公开,外界 以及 子类 都不能直接访问
  • 私有属性、方法 通常用于做一些内部的事情

示例

父类的私有属性和私有方法.png

三、多继承

3.1 多继承的概念

3.2 多继承的语法

class 子类名(父类名1, 父类名2...)
    pass

3.3 多继承的使用注意事项

如果 不同的父类 中存在 同名的方法,子类对象 在调用方法时,会调用 哪一个父类中的方法呢?

多继承II .png

Python 中的 MRO —— 方法搜索顺序(知道)

输出结果

(<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>)

使用注意:开发时,应该尽量避免这种容易产生混淆的情况! —— 如果父类之间存在同名的属性或者方法,应该尽量避免使用多继承

3.4 新式类与旧式(经典)类

objectPython 为所有对象提供的 基类,提供有一些内置的属性和方法,可以使用 dir 函数查看

新式类经典类 在多继承时 —— 会影响到方法的搜索顺序

为了保证编写的代码能够同时在 Python 2.xPython 3.x 运行!
今后在定义类时,如果没有父类,建议统一继承自 object

class 类名(object):
     pass
上一篇下一篇

猜你喜欢

热点阅读