MST

星途 面试题库

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

请描述在TypeScript类继承体系中,super关键字在构造函数和普通方法中的作用,并给出相应代码示例。
27.4万 热度难度
前端开发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');
console.log(myDog.name); 
console.log(myDog.breed); 

在普通方法中

在子类的普通方法里,super关键字用于调用父类中被重写的方法。这使得子类在扩展或修改父类方法行为时,能够复用父类的部分功能。

示例代码如下:

class Animal {
    move(distanceInMeters: number = 0) {
        console.log(`Animal moved ${distanceInMeters}m.`);
    }
}

class Dog extends Animal {
    move(distanceInMeters: number = 5) {
        super.move(distanceInMeters);
        console.log(`Dog moved ${distanceInMeters}m with its four legs.`);
    }
}

let myDog = new Dog();
myDog.move();