定义:某个类表示抽象概念,用于提取子类的公共部分,而不是直接创建它的对象,该类可以称为抽象类
- 抽象类的特点
- 抽象类不能直接 new 实例化
-
abstract class Person { //abstract skill();//缺少返回类型批注的构造签名隐式具有返回类型 "any" abstract skill(): void; } const person = new Person();//报错Cannot create an instance of an abstract class.
- 抽象类只能被子类继承,而且需要包含抽象类的抽象方法
-
abstract class Person { same() { console.log('子类中相同方法提取') this.skill();//子类中不同方法处理 } abstract skill(): void; } class Student extends Person { skill(){ console.log('单独处理'); } } class Teacher extends Person { skill () { console.log('单独处理'); } }
-
另外,模版模式
-
有些方法,所有子类实现的流程完全一致,只是流程中的某个步骤的具体实现不一致,可以将该方法提取到父类,在父类中完成整个流程的实现(上面代码中的same方法),遇到实现不一致的方法时(把该方法做成抽象方法,子类必须去实现),这种设计模式就是模板模式。