[TypeScript] 抽象クラス

はじめに

今回は、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("仕事中");
    }
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください