MST

星途 面试题库

面试题:TypeScript中super在类继承里的常规用法

请描述在TypeScript类继承体系中,super在构造函数和普通方法中的用法,并举例说明。
41.6万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

在构造函数中

在TypeScript类继承体系中,当子类有构造函数时,必须在构造函数中首先调用super() ,以调用父类的构造函数,完成父类实例的初始化。这是因为子类实例在使用this 之前,必须先完成父类部分的初始化。

示例代码如下:

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;
    }
}

let myDog = new Dog('Buddy', 'Golden Retriever');

在普通方法中

在子类的普通方法中,super 用于调用父类中被重写的方法。这允许在子类方法内复用父类方法的逻辑,同时添加额外的自定义逻辑。

示例代码如下:

class Animal {
    speak() {
        return 'I am an animal';
    }
}

class Dog extends Animal {
    speak() {
        let superSpeak = super.speak();
        return superSpeak + ' and I am a dog';
    }
}

let myDog = new Dog();
console.log(myDog.speak());