本文讲述了类的继承、接口的实现中需要注意的一些小细节,同时也对类、接口的多继承做了一些讲解。
先看一下继承
类的继承
子类继承了父类之后,就会将父类中定义的非 private 属性以及方法都继承下来
class Animal {
public name: string = "Animal";
public age: number;
sayHello() {
console.log(`Hello ${ this.name }`);
}
}
class Dog extends Animal {
age: number;
constructor(age) {
super();
this.age = age;
}
}
const dog = new Dog(6);
dog.sayHello();
由于 Dog 继承了 Animal 类,所以同时也继承了 Animal 的 name 属性和 sayHello 方法,因此可以直接使用 dog 实例调用 sayHello 方法。
那么问题来了:如果可以进行多继承,若多个父类中都包含同一个属性,那么子类使用的应该是哪个父类的属性呢? 因此 TypeScript 中不允许进行多继承,可是我就是想进行类的多继承该怎么办呢?可以使用用下节所说的 Mixins 的方式。