如何从子类中调用基类构造函数在TypeScript中
在本文中,我们将学习如何从子类中调用基类构造函数。当一个类继承另一个类的属性时,它被称为 子类 ,而继承属性的类被称为 父类 ,整个过程被称为 继承 。在继承中,子类获得了基类或父类的属性。
您可以使用 super() 调用子类中的基类构造函数,这将执行基类的构造函数。
示例:
class Person {
// Person类的属性
Name: string;
Profession: string;
// Person类的构造函数
constructor(name: string, profession: string) {
this.Name = name;
this.Profession = profession;
}
}
class Details extends Person {
// 类的属性
Name: string;
Profession: string;
// Details类的构造函数
constructor(name: string, profession: string) {
// 调用基类构造函数
super(name, profession);
// 设置属性
this.Name = name;
this.Profession = profession;
}
details(): string {
return this.Name + " 是 " +
this.Profession;
}
}
// 创建对象
var data =
new Details("A", "Android开发者");
var data2 =
new Details("B", "Web开发者");
// 访问details()函数并打印输出
console.log(data.details());
console.log(data2.details());
输出:
A 是 Android开发者
B 是 Web开发者
在这里, Person 类是我们的父类, Details 类是我们的子类,也是 Details 类继承了 Person 类的属性。使用extends关键字来继承另一个类。Details类继承了Person类的属性。
现在在派生类中,我们使用了 super() 来调用基类或父类的构造函数。然后,我们创建了Details类的实例,并将两个参数name和profession传递给其构造函数,然后我们调用了 details 方法,该方法将打印出构造函数参数中所提供的值。
示例2:
class Square {
// Square类的属性
side: number;
// Square类的构造函数
constructor(side: number) {
this.side = side;
}
}
class Area extends Square {
// Area类的属性
side: number;
// Area类的构造函数
constructor(side: number) {
// 调用基类构造函数
super(side);
// 设置属性
this.side = side;
}
// 返回正方形的面积
area(): string {
return "正方形的面积是 " + t
his.side * this.side;
}
}
// 创建Area类的对象
var data = new Area(7);
// 获取属性并打印值
console.log(data.area());
输出:
正方形的面积是49
阅读更多:JavaScript 教程
极客教程