はじめに
今回は、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:
コメント