Type Script類
1997 ワード
継承と多角形
以前のJavaScriptは原型継承に基づいて多重化可能な「クラス」を実現しましたが、Type Scriptは本当に実現したクラスで、本当に対象に向けたプログラミング思想が使えます.
修飾子
クラスの中の修飾子はpublic、prvate、protectedの3種類があります.
以下の例では、構造関数のパラメータを
以前のJavaScriptは原型継承に基づいて多重化可能な「クラス」を実現しましたが、Type Scriptは本当に実現したクラスで、本当に対象に向けたプログラミング思想が使えます.
class Animal {
name:string;
// Animal
constructor(theName: string) { this.name = theName; }
move(meters: number = 0) {
console.info(this.name + " moved " + meters + "m.");
}
}
//
class Snake extends Animal {
constructor(name: string) { super(name); }
move(meters = 5) {
console.info("Slithering...");
super.move(meters);
}
}
class Horse extends Animal {
constructor(name: string) { super(name); }
move(meters = 45) {
console.info("Galloping...");
}
}
let sam = new Snake("Sammy the Python");
let tom: Animal = new Horse("Tommy the Palomino");
sam.move();
tom.move(34);
Horse類はAnimal類を継承し、move方法を書き換えました.このようにmove()方法は異なる種類の中で異なる機能を持っています.これは多状態です.派生クラスのコンストラクタはsuper()を呼び出す必要があり、ベースクラスの構造方法を実行します.修飾子
クラスの中の修飾子はpublic、prvate、protectedの3種類があります.
class Animal {
public name:string; //
protected height:number; //
private weight:number; // Animal
// Animal
constructor(theName: string) { this.name = theName; }
move(meters: number = 0) {
console.info(this.name + " moved " + meters + "m.");
}
}
パラメータのプロパティ以下の例では、構造関数のパラメータを
protected theName: string
を使用して定義することができます.class Animal {
static type = {run:0, jump:1}; //
name:string;
// Animal
constructor(protected theName: string) { this.name = theName; }
move(meters: number = 0) {
console.info(this.name + " moved " + meters + "m.");
}
}
抽象類** , , 。**
abstract class Animal {
abstrack eat():void; //
move(meters: number = 0) {
console.info(this.name + " moved " + meters + "m.");
}
}