LoginSignup
0
0

TypeScriptでのメソッドオーバーライドを理解する

Last updated at Posted at 2024-05-21

はじめに

TypeScriptでは、オブジェクト指向プログラミング(OOP)の一環として、メソッドオーバーライドをサポートしています。オーバーライドは、親クラス(スーパークラス)で定義されたメソッドを子クラス(サブクラス)で再定義することを指し、クラスの機能を拡張または特化するための重要な手法です。

メソッドオーバーライドとは?

メソッドオーバーライドとは、スーパークラスで定義されたメソッドをサブクラスで再定義し、異なる動作を実装することです。これにより、ポリモーフィズム(多態性)を実現し、オブジェクト指向設計をより柔軟かつ強力にします。

基本ルール

  1. メソッド名が同じ:親クラスのメソッドと同じ名前で定義します。
  2. 引数リストが同じ:親クラスのメソッドと同じ引数リストを持ちます。
  3. 戻り値の型が同じ:親クラスのメソッドと同じ戻り値の型を持ちます。

TypeScriptでのオーバーライドの例

親クラスの定義

まず、親クラス(スーパークラス)を定義します。

class Animal {
    makeSound(): void {
        console.log("Animal makes a sound");
    }
}

子クラスの定義とメソッドのオーバーライド

次に、子クラス(サブクラス)を定義し、親クラスのメソッドをオーバーライドします。

class Dog extends Animal {
    makeSound(): void {
        console.log("Dog barks");
    }
}

class Cat extends Animal {
    makeSound(): void {
        console.log("Cat meows");
    }
}

オーバーライドメソッドの使用

オーバーライドされたメソッドを呼び出して動作を確認します。

const myAnimal: Animal = new Animal();
const myDog: Animal = new Dog();
const myCat: Animal = new Cat();

myAnimal.makeSound(); // 出力: Animal makes a sound
myDog.makeSound();    // 出力: Dog barks
myCat.makeSound();    // 出力: Cat meows

オーバーライドの利点

1. コードの再利用

  • スーパークラスで共通の機能を定義し、サブクラスでその機能を拡張または変更することで、コードの再利用性が向上します。

2. ポリモーフィズムの実現

  • 同じメソッド名で異なる動作を実装できるため、異なるオブジェクトに対して同じインターフェースで操作できます。

3. メンテナンス性の向上

  • 共通の処理を親クラスにまとめ、特化した処理を子クラスに分けることで、コードのメンテナンスが容易になります。

まとめ

TypeScriptでのメソッドオーバーライドは、OOPの重要な機能の一つです。これを活用することで、クラスの設計がより柔軟かつ強力になります。親クラスで共通の機能を定義し、子クラスで特化した動作を実装することで、コードの再利用性、可読性、メンテナンス性が向上します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0