はじめに
今回は、TypeScript で抽象クラスを定義して使用する方法について説明します。
目次
抽象クラスとは
抽象クラスは、継承して使用するクラスで、以下の特徴を持ちます。
- 直接インスタンスを作成することができない(継承して使用される)
- 1つ以上の抽象メソッド または 抽象プロパティを持つ
- 抽象クラスを継承するサブクラスは、全ての抽象メソッドや抽象プロパティを実装する必要がある
では、抽象クラスを使用する目的ですが、実装する際のルールを作るという点にあります。
抽象クラスの定義
抽象クラスを定義するには abstract キーワードを使用します。抽象メソッド および 抽象メソッドの定義時も abstract キーワードを使用します。
以下は Employee という抽象クラスを定義する例です。ここでは 抽象メソッド doWork を持たせています。メソッドの中身はサブクラス側で実装しますので、ここでは何も記載しません。
// 抽象クラス
abstract class Employee {
private _name : string
constructor(name : string) {
this._name = name;
}
// 抽象メソッド
abstract doWork() : void;
}
抽象クラスの利用
それでは抽象クラスを継承してサブクラスを定義しましょう。
以下は、先ほど作成した Employee クラスを継承して、MyEmployee クラスを定義する例です。
抽象クラスを継承するときは、通常のクラスの継承と同様に extends キーワードを使用します。
継承元の Employee クラスは抽象メソッド doWork を持っていましたので、サブクラスで実装をします。
// 社員クラス
class MyEmplyee extends Employee {
constructor(name : string) {
super(name);
}
doWork() : void {
console.log("仕事中");
}
}
Please follow and like us:

コメント