Dart 继承

2025年2月5日 | 阅读 4 分钟

Dart 继承定义为派生另一个类的属性和特征的过程。 它提供了从现有类创建新类的能力。 它是 oops(面向对象编程方法)中最重要的概念。 我们可以重用新类中先前类的所有行为和特征。

  • 父类 - 被其他类继承的类称为超类父类。 它也被称为基类
  • 子类 - 从其他类继承属性的类称为子类。 它也被称为派生类子类

假设我们有一队汽车,我们创建了三个类,分别是 Duster、Maruti 和 Jaguar。 方法 modelName()、milage() 和 man_year() 对于所有这三个类都是相同的。 通过使用继承,我们不需要在这三个类中的每一个类中编写这些函数。

Dart Inheritance

正如你在上图中看到的,如果我们创建类 Car 并在每个类中编写公共函数。 那么,它会增加程序中的重复和数据冗余。 继承用于避免这种情况。

我们可以通过定义包含这些函数的 Car 类,并从 Car 类继承到其他类来避免数据冗余。 它增强了代码的可重用性。 我们只需要编写一次函数,而不是多次编写。 让我们看一下下面的图片。

Dart Inheritance

语法如下所示。

语法 -

子类使用 extends 关键字继承父类的函数和变量或属性。 它不能继承父类构造函数; 我们将在后面讨论这个概念。

继承的类型

继承主要有四种类型。 它们如下所示。

  • 单继承
  • 多重继承
  • 多层继承
  • 层次继承

单层继承

在单继承中,一个类由一个类继承,或者子类由一个父类继承。 在下面的示例中,我们创建了 Person,它继承了 Human 类。

Dart Inheritance

让我们理解下面的例子。

示例 -

输出

The parrot can speak
The bird can fly

说明

在上面的代码中,我们创建了父类 Bird 并在其中声明了 fly() 函数。 然后,我们创建了名为 Parrot 的子类,它使用 extends 关键字继承了父类的属性。 子类有自己的函数 speak()。

现在子类有两个函数 fly() 和 speak()。 因此我们创建了子类的对象并访问了这两个函数。 它将结果打印到控制台。

多重继承

在多重继承中,一个子类被另一个子类继承,或者创建继承的链。 让我们理解以下示例。

Dart Inheritance

示例 -

输出

The parrot can speak
The bird can fly
The eagle has a sharp vision

说明

在上面的例子中,我们创建了另一个新类 Eagle 并继承了 Parrot 类。 现在鹦鹉是 Eagle 的父类,Eagle 类获得了两个父类的所有功能。 我们创建了子类的对象并访问了所有属性。 它将输出打印到屏幕上。

注意 - Dart 不支持多重继承,因为它会在程序中产生复杂性。

多层继承

多层继承设计特性允许子类从继承链中的多个祖先类接收其父类的优点。 通过多层继承,子类从其每个祖先类获得属性和方法。

Dart Inheritance

示例 -

输出

Animals eat food  
Mammals breathe air  
The dog barks  

说明

Animal 类包含可通过继承访问 Mammal 的 eat() 方法,而 Mammal 添加其特定的 breathe() 方法。 通过扩展 Mammal,Dog 类获得两种继承的方法,同时创建 bark() 方法。 创建的 Dog 对象可以访问所有三种方法。

多层继承通过在多个级别上提供属性和行为属性的有效传输来演示其功能。 设计的层次结构通过启用更好的代码组织来控制系统结构,同时减少重复并最大限度地利用有用的代码元素以供将来使用。

层次继承

在分层继承中,两个或多个类继承一个类。 在下面的示例中,两个子类 Peter 和 James 继承了 Person 类。

Dart Inheritance

示例 -

输出

James
24
Passed
Peter
21
Computer Science