面试题答案
一键面试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;
}
}
在上述代码中:
super
关键字的作用:super
用于在子类构造函数中调用父类的构造函数。在Dog
类的构造函数中,super(name)
调用了Animal
类的构造函数,并将name
参数传递给它,这样就可以在子类中复用父类的构造逻辑,完成name
属性的初始化。- 使用时机:在子类构造函数中,如果要初始化从父类继承来的属性,就需要使用
super
调用父类构造函数。而且在子类构造函数中,访问this
之前必须先调用super
,这是TypeScript和JavaScript类继承机制的要求。