靜態方法和靜態屬性
static 關鍵字用於定義類的數據成員(屬性和方法)為靜態的,靜態成員可以直接通過類名調用。
class StaticMem { static num:number; static disp():void { console.log("num 值為 "+ StaticMem.num) } } StaticMem.num = 12 // 初始化靜態變量
StaticMem.disp() // 調用靜態方法
StaticMem.num = 12 // 初始化靜態變量
StaticMem.disp() // 調用靜態方法
靜態方法可以直接在類的外面調用,不需要new
typescript中的多態
父類定義一個方法不去實現,讓繼承他的子類去實現,每一個子類有不同的表現
多態屬於繼承
實例:
class Animal { name: string; construtor(name: string){ this.name = name; } eat(){ //具體吃什么?繼承他的子類去實現
console.log("吃的方法") } } //Dog類繼承Animal
class Dog extends Animal{ construtor(name: string){ super(name); } eat(){ return this.name+"吃糧食"; } //Cat類繼承Animal
class Cat extends Animal{ construtor(name: string){ super(name); } eat(){ return this.name+"魚"; }
typescript中的抽象類
它是提供其他類繼承的基類,不能直接被實例化。
用abstract關鍵字定義抽象類和抽象方法,抽象類中的抽象方法不包含具體實現並且必須在派生類中實現。
abstract抽象方法只能放在抽象類里面
抽象類和抽象方法用來定義標准, 標准: Animal 這個類要求它的子類必須包含eat方法
abstract this Animal{ abstract eat():any; } class Dog extends Animal{ //抽象類的子類必須實現抽象類里面的抽象方法
constructor(name:string){ super(name) } eat(){ console.log("吃糧食") } }
這節很簡單,和java很像。