
#打卡不停更#一文带你了解 Python 中的继承知识点 原创
1 类继承
Python 是面向对象的编程语言,因此支持面向对象的三大特性之一:继承。
继承是代码重用的一种途径,Python 中的继承就像现实生活中的继承一样,子类可以顺利继承父类的属性或方法。允许我们再对象之间创建复杂且类似现实世界的关系。
继承父类的类称为子类、派生类或扩展类,被继承的类被称为父类、超类或基类。
在之前的文中学到 Python 中的构造函数,并且每一个类都有一个构造函数 __init__()
,在 Python 中任何类都是继承于最大的基类 Object
,如下所示:
Python 中继承类的语法如下:
1.1 继承的简单例子
先来看一个简单的继承例子,假如有一个 Car
类继承于更通用的类 Vehicle
,然后也可以定义一个 Motorcyle
类,继承图如下:
Python 代码实现如上继承关系,如下:
我们的汽车继承了车辆类的所有方法和变量,但添加了一个额外的变量和两个方法来操作后备箱。
有时你想覆盖继承的 __init__()
函数。为了演示,我们可以创建一个摩托车类。大多数摩托车都有一个中心支架。我们将在初始化时添加输出或输入的功能:
需要注意的是,在重写构造函数时,我们继承的父类的构造函数不会被改变。如果想要更改这个功能,需要自己调用它。这是通过 super()
函数完成返回父类的引用,然后才能调用父类的构造函数。
super()
函数返回一个代表父类的临时对象。这用于访问父类的方法和属性。在 super()
函数的帮助下,我们还可以访问被覆盖的方法。
运行上面代码的结果如下:
2 继承的类型
2.1 单继承
单继承就是一个子类只有一个基类的继承方式,显示图如下:
最基本的例子如下:
2.2 多继承
多继承就是一个子类可以继承多个父类的继承方式,相对于单继承来说,多继承更复杂,容易造成菱形继承问题,即两个父类同时继承了一个基类,而子类会包含多个父类的内容,产生代码歧义。
多继承结构图:
语法结构如下:
运行代码:
从上面的执行结果来看,本来想介绍年龄,最后却输出了“我叫 18”,这种现象就是继承顺序导致的,类 A 在类 B 的前面,所以对于同名的属性和方法子类都会调用 类 A 的。
2.3 多级继承
当一个类继承一个子类时,它被称为多级继承。继承子类的类被称为孙子类。多级继承会导致孙子和子关系。孙子类可以访问子类和父类的属性。
多级继承结构图:
运行结果:
在上面的代码示例中,GrandChild 是 Child 的一个子类,而 Child 是 Parent 的一个子类。因此,GrandChild 可以访问父类和子类的属性。
2.4 分层继承
当多个类继承同一个类时,称为分层继承。结构图如下:
代码如下:
运行结果:
2.5 Python中的混合继承
一种以上继承类型的组合称为混合继承。结构图如下:
代码例子如下:
在上面的代码示例中,我们结合了多级继承、多重继承和分层继承,因此创建了混合继承。输出结果:
3 总结
继承允许我们定义继承另一个类的所有方法和属性的类。父类是继承的类,也称为基类、派生类。子类是从另一个类继承的类,也称为派生类。
本文介绍了 Python 的继承方法和继承的 5 种分类,并在简单的例子中实践了各种继承的方式。但继承的实际用法可不会像本文这样简单,今后介绍更多相关的知识。
希望本文能对你有所帮助,如果喜欢本文,可以点个赞或关注。
这里是宇宙之一粟,下一篇文章见!
宇宙古今无有穷期,一生不过须臾,当思奋争。
参考链接:
