オーバーライド

「オーバーライド(Override)」は、オブジェクト指向プログラミング(OOP)において、子クラスが親クラスから継承したメソッドを再定義して、子クラス独自の動作を提供することを指します。オーバーライドにより、子クラスは親クラスのメソッドをそのまま使用せず、カスタマイズしたメソッドを持つことができます。

以下はオーバーライドの主なポイントについて説明します:

  1. 継承とオーバーライド:

    • クラス階層において、子クラスが親クラスからメソッドを継承した場合、子クラスはそのメソッドをオーバーライドして、独自の実装を提供できます。この新しい実装は、子クラスのインスタンスが呼び出すときに実行されます。
  2. メソッド名とシグネチャ:

    • オーバーライドするメソッドは、親クラスと同じメソッド名とメソッドシグネチャ(引数の数と型)を持つ必要があります。ただし、メソッドの実装内容は異なることがあります。
  3. super() 関数:

    • オーバーライドしたメソッド内で、親クラスのメソッドを呼び出す必要がある場合、super() 関数を使用して親クラスのメソッドを明示的に呼び出すことができます。これにより、親クラスの振る舞いを継続的に利用できます。

以下はPythonでのオーバーライドの例です:

python
class Animal: def speak(self): pass class Dog(Animal): def speak(self): return "Woof!" class Cat(Animal): def speak(self): return "Meow!" # Animalクラスから継承したDogとCatクラスを使用 dog = Dog() cat = Cat() print(dog.speak()) # "Woof!" print(cat.speak()) # "Meow!"

この例では、Animal クラスから継承した Dog クラスと Cat クラスが、speak メソッドをオーバーライドして独自の音声を提供しています。オーバーライドにより、各クラスは親クラスの speak メソッドをカスタマイズしています。