面试题答案
一键面试在构造函数中
在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();