TypeScript中类的继承
TypeScript中类的继承和es6一样,通过extends关键字进行继承。子类在继承后若要复写父类的constructor方法需要先调用super()方法,并且要传入父类中构造函数定义的参数。如下代码中复写父类的constructor方法中先调用了super()方法,并传入了父类的constructor()方法中要求传入的参数age。如果子类的方法和父类的同名,子类中的方法会覆盖父类的方法。
//父类Animal
class Animal{
age: number
constructor(age: number) {
this.age = age;
}
//父类的eat方法
eat() {
console.log("吃个大鸡腿儿")
}
}
//继承Animal类的子类Dog
class Dog extends Animal{
type: string
constructor(type: string, age: number) {
//继承的字类中的构造方法中必须先调用super()方法,并且要传入父类中构造函数定义的参数。
super(age);
this.type = type;
}
// 子类中如果出现了和父类同名的方法,则会进行覆盖
// 也就是调用的时候,调用的就是子类中的方法了!
eat() {
console.log('狗对象中的eat方法')
}
}
//初始化一个Dog实力并传入种类和年龄参数
var dog = new Dog("哈士奇", 18);
dog.eat();