TypeScript学习笔记 抽象类与多态
TypeScript抽象类
- 抽象类,只能被继承,不能被抽象化的类。
abstract
定义抽象类,抽象类中定义方法,子类中可以直接调用。- 在抽象类内可以抽象方法,不指定具体的实现。好处就是抽离出方法的共性,有利于代码的服用,知道此方法有其他的实现方式。
abstract class Animal {
// 抽象类中定义方法
eat() {
console.log('eat')
}
// 在抽象类中定义抽象方法,在子类中具体实现
abstract sleep(): void
}
class Dog extends Animal {
constructor() {
super();
}
// 在子类中实现这个抽象方法
sleep() {
console.log('dog sleep')
}
}
let dog = new Dog();
// eat
dog.eat();
// 使用抽象方法
// dog sleep
dog.sleep();
TypeScript抽象类的多态
- 同一个抽象方法,在多个子类中对这个方法有多个实现,在程序运行的时候会根据不同的对象,执行不同的操作。
|
TypeScript类型this类型
- 类的成员方法返回this,可以实现链式调用。
|
- 继承的时候,this类型也可以表现出多态,this既可以是夫类型也可以是子类型。
|