TypeScript 继承

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

继承是 OOPs 语言的一个方面,它提供了程序从现有类创建新类的能力。它是一种从另一个类获取类的属性行为的机制。其成员被继承的类称为基类,继承这些成员的类称为派生/子/子类。在子类中,我们可以重写或修改其父类的行为。

在 ES6 之前,JavaScript 使用函数基于原型的继承,但 TypeScript 支持来自 ES6 版本的基于类的继承。 TypeScript 通过extends关键字使用类继承。 TypeScript 仅支持单继承多层继承。 它不支持多重和混合继承。

语法

我们可以如下声明一个类继承。

为什么使用继承?

  • 我们可以使用它进行方法重写(因此可以实现运行时多态性)。
  • 我们可以使用它来实现代码重用。

继承示例

TypeScript Inheritance

如上图所示,Audi 是子类,而 Car 是超类。这两个类之间的关系是 Audi IS-A Car。 意思是 Audi 是一种 Car。

输出

TypeScript Inheritance

在上面的例子中,Audi 类 使用 extends 关键字扩展了 Car 类。 这意味着 Audi 类可以包含 Car 类的所有成员。 Audi 类的构造函数使用特殊的关键字“super”来初始化其自身的成员以及父类的属性。 super 关键字用于调用父构造函数及其值。

继承的类型

我们可以将继承分为五种类型。 这些是

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

TypeScript Inheritance

注意: TypeScript 仅支持单继承和多层继承。 它不支持多重、分层和混合继承。

单继承

单继承最多可以从一个父类继承属性和行为。 它允许派生/子类继承基类的属性和行为,从而实现代码重用,并且我们可以向现有代码添加新功能。 单继承使代码重复性降低。

示例

输出

TypeScript Inheritance

多层继承

当一个派生类从另一个派生类派生时,这种类型的继承被称为多层继承。 因此,多层继承具有一个以上的父类。 它类似于祖父、父亲和孩子之间的关系

示例

输出

TypeScript Inheritance

多重继承

当一个对象或类从一个以上的父类继承特征特性时,这种类型的继承称为多重继承。 因此,多重继承从一个以上的父类获取属性。 TypeScript 不支持多重继承。

层次继承

当一个以上的子类从一个单一的基类继承时,这种类型的继承被称为分层继承。 在这里,子类中所有共有的特征都包含在基类中。 TypeScript 不支持分层继承。

混合继承

当一个类从一种以上的继承形式继承特征和特性时,这种类型的继承被称为混合继承。 换句话说,它是多层继承和多重继承的组合。 我们可以通过组合一种以上的继承类型来实现它。 TypeScript 不支持混合继承。

下一个主题TypeScript 接口