在通过类定义对象的时候,如果一个类被继承,这个类就是父类,但是但是类是可以被实例化的,如果父类也被实例化成对象,就容易造成不好的影响,所以抽象类就是可以解决这个问题:
class Aniaml {name: stringconstructor(name:string) {this.name=name}sayHelly() {console.log('hello')}}let dongwu=new Aniaml('aaa')//父类被继承,这里来看,父类叫Animal,实际不能指向一个具体的事务,所以被实例化是不合理的class Dog extends Aniaml { //子类继承}let dog = new Dog('小狗')dog.sayHelly()
可以通过abstract关键字定义抽象类解决避免父类被实例化
abstract class Aniaml {name: stringconstructor(name:string) {this.name=name}sayHelly() {console.log('hello')}}class Dog extends Aniaml {}let dog = new Dog('小狗')dog.sayHelly()
如果定义的抽象类被实例化,则会报错:

