MST

星途 面试题库

面试题:TypeScript类构造函数中的继承与 super 关键字的应用

在TypeScript中,有一个基类`Animal`,它有一个构造函数接受`name`参数并在类中存储该属性。现在创建一个`Dog`类继承自`Animal`,`Dog`类的构造函数除了接受`name`参数外,还接受`breed`参数。请写出完整的代码实现,并解释`super`关键字在其中的作用及使用时机。
16.6万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
class Animal {
    name: string;
    constructor(name: string) {
        this.name = name;
    }
}

class Dog extends Animal {
    breed: string;
    constructor(name: string, breed: string) {
        super(name);
        this.breed = breed;
    }
}

在上述代码中:

  1. super关键字的作用super用于在子类构造函数中调用父类的构造函数。在Dog类的构造函数中,super(name)调用了Animal类的构造函数,并将name参数传递给它,这样就可以在子类中复用父类的构造逻辑,完成name属性的初始化。
  2. 使用时机:在子类构造函数中,如果要初始化从父类继承来的属性,就需要使用super调用父类构造函数。而且在子类构造函数中,访问this之前必须先调用super,这是TypeScript和JavaScript类继承机制的要求。