Dev Study
← 解説「implements — インターフェースを実装する」に戻る

サンプルコードで身につける: implements — インターフェースを実装する

解説で学んだ概念を、5つの具体例で確認します。素朴な例から実務寄りの例へと進みます。

1implements の最小例

interface が定めたメソッドをクラスが備えていることを implements で宣言する、最小の形です。約束したメソッドを書き忘れると、使う前のクラス定義の時点でエラーになるのが要点です。

TypeScript

21つの interface を複数クラスで

同じ interface を implements したクラスは、実装が違っても「同じ操作ができる仲間」として扱えます。Animal[] の配列にまとめて同じメソッドを呼ぶ、ポリモーフィズムの入り口となる例です。

TypeScript

3プロパティの約束も検査される

interface にはメソッドだけでなくプロパティも書け、implements したクラスは両方を備える必要があります。「データと操作のセット」を型として約束する形で、約束のどれが欠けても定義時点でエラーになります。

TypeScript

4interface 型の引数で実装を差し替える

使う側の関数は Logger という interface だけに依存し、どの実装クラスを渡すかは呼び出し側が決める例です。テスト時だけ実装を差し替えるなど、実務の「依存性の注入」の最小形がこのパターンです。

TypeScript

5支払い方法を差し替えられる checkout

支払いという共通の操作を interface に定め、カード払い・銀行振込をそれぞれのクラスで実装する実務的な例です。新しい支払い方法が増えても checkout 関数は一切変更せず、クラスを追加するだけで対応できます。

TypeScript