面向对象的主要特点是
1. 封装
2. 继承
3. 抽象
4. 多态
在class之前加上abstract
关键字表名这个类是一个抽象类, 在方法前加上abstract
表名这个方法是抽象方法,抽象方法只需要写出方法的定义,由实现类完成它的具体细节.
现在完善一下上一节的例子:
abstract class Auto{
engine: string;
constructor(engine:string){
this.engine = engine;
}
abstract start(); //抽象方法
}
class SUV extends Auto{
constructor(engine:string){
super(engine);
}
start(){
console.log(this.engine+" started!")
}
}
var suv = new SUV('V8'); //这台suv有一个8缸发动机
suv.start();
//当尝试实例化一个抽象类时,会得到一个错误
var auto = new Auto('v4');