继承定义

2025年3月17日 | 阅读 8 分钟

我们生活在一个软件和编程无处不在的世界。现代编程语言在很大程度上建立在面向对象编程(简称 OOPs)的概念之上。OOP 是一种范式,可以帮助程序员构建易于维护、理解和覆盖的代码。OOP 范式的四大支柱是抽象、封装、继承和多态。 现在,我不再过多地吹嘘 OOPs,让我们开始讲继承。因为这才是本教程的主题。

什么是继承?

“继承”一词来源于“继承”(Inherit),意为“从家族中获得任何品质、特征或特性”。因此,“继承被定义为一种机制,其中子类或派生类继承了父类或其他派生类的属性和特征。它还支持从子类中提取属性并将其用于其他派生类的附加功能。

在计算机编程中,继承是面向对象编程(OOPS)范式中仅次于抽象、封装和多态的最重要的概念之一。这种机制允许新对象继承现有对象的属性。继承在类之间建立关系;因此,将两个或多个类相互关联并建立类层次结构。程序员不必一次又一次地编写相同的代码,而是可以通过继承其类来使用已创建的代码。

理解继承

为了更深入地了解继承,首先我们需要了解两种类型的编程类

  1. 子类
  2. 父类

一个被继承的类称为子类或派生类。子类继承基类(也称为父类)的属性或特征。

在编程世界中,子类也称为子类,而父类称为父类。

继承如何使编程更轻松?

在面向对象编程中,程序员创建一个类,并在该类中定义对象、数据成员和数据函数。数据成员是对任何类型对象的引用,或者是在类中声明的变量,其中数据函数被定义为在类中指定的的或函数。编码器使用这些函数来操作数据成员。这些数据成员和成员函数可以根据使用范围使用 **public 或 private 关键字**声明。

借助 OOPs 继承机制,程序员无需在同一代码中递归创建数据成员和数据函数。他们只需在父类中创建和定义一次数据成员和函数,然后让派生类继承其父类所有数据成员和函数的属性和特性。 因此,支持有效的动态编程,使工作更轻松。

继承的类型

1. 单继承

Inheritance Definition

在这种类型中,子类继承父类的属性。

在下面的示例中,您会注意到类 One 是父类,类 Two 是基类。因此,类 Two 继承了基类 One 的属性和行为。

语法

2. 多重继承

Inheritance Definition

在这种类型中,子类继承了两个或多个父类的属性和特性。

在下面的示例中,您会注意到类 Three 继承了类 Two 的特性和行为。进一步,类 Two 继承了类 One 的属性。因此,我们可以得出结论,类 One 是类 Two 的基类,而类 Two 是类 Three 的基类。

因此,类 Three junto con 类 Two 隐式地继承了类 One 的行为和属性,从而创建了多重继承。

语法

3. 多层继承

Inheritance Definition

在这种类型中,一个子类继承了两个或多个父类的属性和行为。

在下面的示例中,类 Three 在同一级别继承了类 Two 和类 One 的属性、函数和对象。因此,类 One 和类 Two 都是类 Three 的父类。

语法

4. 层次继承

Inheritance Definition

在层次继承类型中,两个或多个子类从一个父类继承属性和行为。

在下面的示例中,以下层次结构

(I) 基类 One 有两个派生类,即类 Two 和类 Three。

(II) 接下来,类 Two 作为类 Six 和 Seven 两个子类的基类。

(III) 此外,类 Three 也分别是类 Four 和类 Five 的基类。

语法

5. 混合继承

Inheritance Definition

通过这种类型,程序员可以调用两种或多种继承类型的组合。因此,代码可以包含多重继承和层次继承的组合,多层继承和层次继承的组合,或层次继承和多路继承的组合,或者可能是其中三个的组合,即多重、多层和多重层次继承。

注意:.NET 语言(如 C#、F# 等)不支持混合继承。

语法

继承的优点

以下是继承的一些优点。

  • 递归代码只编写一次。因此,允许代码重用。
  • 一个基类可以在层次结构中的一个或多个派生类中使用。
  • 它节省了时间,因为程序员不必在所有基类中更改值;他们在一个父类中更改,基类将继承更改。
  • OOPs 继承用于创建主导对象。
  • 继承防止数据重复和冗余。
  • 继承降低了空间和时间复杂度。

继承在编程中的重要性是什么?

继承在编程中很重要,因为它防止代码重复和数据冗余。因此,使用继承的主要原因是它支持代码重用。让我们用一个现实世界的例子来理解上述陈述:假设您和您的兄弟们住在您父亲那里,那么父亲将是一个父类或父类,而您和您的兄弟们将是派生类或子类。因此,子类(您和您的兄弟们)从父类(父亲)继承了许多特征,例如姓氏、房屋地址行、房屋固定电话号码、城市、国家等。最近你们都搬到了一个新的地方,现在需要更改地址。因此,我们不必在所有类中重写新地址,而是更新父类的地址,所有派生类都将从该父类继承新地址。

为什么需要继承?

  1. 继承有助于避免一遍又一遍地重写相同的代码。程序员可以重用先前编写的代码,(如有必要)覆盖代码并在程序中进一步使用。
  2. OOPs 继承机制有助于防止代码重复和数据冗余。
  3. 它还减少了空间和时间复杂度。因此,使程序更有效。
  4. 继承使程序易于访问,因为它涉及一种分层编程范例。
  5. 程序员可以一次创建任何变量,并在代码范围内多次使用相同的变量。
  6. 程序员需要继承来创建主导数据对象和程序函数。

让我们来了解一下继承概念如何在四大 OOPs 导向的编程语言中工作。

C++ 继承

C++ 中的继承 是一个过程,它允许新对象继承现有父对象的属性和特性。因此,它增加了代码的可重用性,并允许程序员修改在其他类中定义的数据成员和成员函数的属性。

请参考下面的语法,在 C++ 中将父类继承到子类中。

语法

程序

输出

Inheritance Definition

Java 中的继承

Java 中的继承 是一种机制,其中一个对象继承父类中所有可用的数据成员和成员函数的属性和行为。请参考下面的语法,在 Java 中将父类继承到子类中

语法

注意:Java 不支持多重继承。

程序

输出

Inheritance Definition

Python 中的继承

在 Python 中, 子类只需在子类名称后的括号中声明父类的名称,即可继承父类的属性和行为。请参考下面的语法,在 Python 中将父类继承到子类中。

语法

程序

输出

Inheritance Definition

C# 中的继承

C# 中的继承 是在类之间建立关系的过程;因此,可以自动将两个或多个类相互关联并建立类层次结构。请参考下面的语法,在 C# 中将父类继承到子类中。

语法

程序

输出

Inheritance Definition
下一主题抗生素定义