1.用abstract關鍵字定義抽象類和抽象方法,抽象類中的抽象方法不包含具體實現並且必須在派生類中實現。
2. abstract抽象方法只能放在抽象類里面
3. 抽象類和抽象方法用來定義標准 。 標准:Animal 這個類要求它的子類必須包含eat方法
例子:
abstract class Animal{
public name:string;
constructor(name:string){
this.name=name;
}
abstract eat():any; //抽象方法不包含具體實現並且必須在派生類中實現。
run(){
console.log('其他方法可以不實現')
}
}
//var a=new Animal() /*錯誤的寫法*/
class Dog extends Animal{
//抽象類的子類必須實現抽象類里面的抽象方法
constructor(name:any){
super(name)
}
eat(){
console.log(this.name+'吃糧食')
}
}
var d=new Dog('小花花');
d.eat();
class Cat extends Animal{
//抽象類的子類必須實現抽象類里面的抽象方法
constructor(name:any){
super(name)
}
run(){
}
eat(){
console.log(this.name+'吃老鼠')
}
}
var c=new Cat('小花貓');
c.eat();