Python 中的继承

继承是面向对象编程(OOP)中的一个核心概念,它允许一个类(称为子类或派生类)从另一个类(称为父类或基类)那里继承属性和方法。在本文中,让我们深入探讨 Python 中的继承机制。

示例: 在这里,我们创建了一个名为 INLINECODE7031081a 的父类,其中包含一个 INLINECODEf89794b0 方法。然后,我们创建了一个继承自 INLINECODE560fffc7 的子类 INLINECODEca36533b,并为其添加了属于自己的行为。

Python


CODEBLOCK_808bbd0b

Output

Animal name: Buddy
Buddy barks

解释:

  • class Animal: 定义了父类。
  • info(): 打印动物的名字。
  • class Dog(Animal): 将 INLINECODE175e06c8 定义为 INLINECODE8bce092d 类的子类。
  • d.info(): 调用父类方法 info() 以及 d.sound(): 调用子类方法。

!<a href="https://media.geeksforgeeks.org/wp-content/uploads/20251009164207176209/animalclass.webp">animalclassPython 中的继承

为什么我们需要继承

  • 通过在类之间共享属性和方法来促进代码复用。
  • 建立现实世界的层级关系模型,例如 Animal -> Dog(动物 -> 狗)或 Person -> Employee(人 -> 员工)。
  • 通过在父类中进行集中更新来简化维护工作。
  • 支持方法重写,以便定制子类的行为。
  • 利用多态性支持可扩展、可伸缩的设计。

super() 函数

super() 函数用于调用父类的方法。特别地,它通常用于子类的 __init__() 方法中,以初始化继承的属性。通过这种方式,子类可以利用父类的功能。
示例: 在这里,INLINECODE35d76a32 类使用 INLINECODE70c2bf9c 来调用 Animal 的构造函数。

Python


CODEBLOCK_af1c5d3a

Output

Animal name: Buddy
Buddy is a Golden Retriever

解释:

  • INLINECODE6e4a921a 函数在 INLINECODE1c7499dd 的 INLINECODE7dfc5d2c 方法内部被调用,用于执行 INLINECODEeb2228c5 的构造函数并初始化继承属性(name)。
  • 这确保了父类的功能被复用,而无需在子类中重写代码。

Python 继承的类型

根据涉及父类和子类的数量不同,继承可以以不同的方式使用。这有助于更有效地建立现实世界关系的模型,并增加代码复用的灵活性。

Python 支持多种类型的继承,让我们逐一进行探索:

1. 单继承

在单继承中,一个子类仅从一个父类继承。

示例: 本示例展示了子类 INLINECODEcf7e09ac 从父类 INLINECODEede6734d 继承了一个属性。

Python


CODEBLOCK_55c8d809

Output

Name: Sarah
Sarah is an employee

解释: 这里 INLINECODE835f721f 从 INLINECODE990c1ea2 继承了 INLINECODEa55702d5,它还定义了自己的方法 INLINECODE4d629b4d。

2. 多重继承

在多重继承中,一个子类可以同时继承多个父类。

示例: 本示例演示了 INLINECODE4b3d3ddc 从两个父类 INLINECODE608553fd 和 Job 继承属性。

Python


CODEBLOCK_a6ff3344

Output

Jennifer earns 50000

解释: 这里 INLINECODEc02a69ec 获取了来自 INLINECODE07d1c3b6 和 INLINECODEaa03dea4 两者的属性,它可以同时访问 INLINECODE2c664ffa 和 salary

3. 多级继承

在多级继承中,一个类派生自另一个派生类(就像一个链条一样)。

示例: 本示例展示了 INLINECODE3d1d9615 继承自 INLINECODEa5efef14,而 INLINECODEdaa60760 又继承自 INLINECODEe0973997。

Python


class Person:

def init(self, name):

self.name = name

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/22539.html
点赞
0.00 平均评分 (0% 分数) - 0