オーバーライド
オーバーライド(Override)は、オブジェクト指向プログラミング(OOP)の概念で、継承に関連して使われる重要な概念の一つです。オーバーライドは、サブクラス(派生クラス)がスーパークラス(基本クラス)のメソッドを再定義し、新しい実装を提供することを指します。オーバーライドによって、サブクラスはスーパークラスのメソッドを自分独自の動作に合わせて変更できます。
オーバーライドの基本的なルールと使用方法は以下の通りです:
-
スーパークラス(基本クラス)内で定義されたメソッドが、サブクラス(派生クラス)で同じ名前で再定義されます。この再定義されたメソッドは、スーパークラスのメソッドを「オーバーライド」します。
-
オーバーライドされたメソッドは、同じ名前、同じ引数リストを持ち、戻り値の型も一致している必要があります。
-
サブクラス内でオーバーライドされたメソッドが呼び出されると、サブクラスの実装が実行されます。ただし、サブクラスのメソッド内で
super()を使用することで、スーパークラスのメソッドも呼び出すことができます。
以下は、Pythonでのオーバーライドの例です:
python
class Animal: def speak(self): return "Animal speaks" class Dog(Animal): def speak(self): # Animalクラスのspeakメソッドをオーバーライド return "Dog barks" class Cat(Animal): def speak(self): # Animalクラスのspeakメソッドをオーバーライド return "Cat meows" dog = Dog() cat = Cat() print(dog.speak()) # Dogクラスのspeakメソッドが呼び出される print(cat.speak()) # Catクラスのspeakメソッドが呼び出される
この例では、Animal クラス内で speak メソッドが定義され、Dog クラスと Cat クラスがそれをオーバーライドしています。結果として、Dog クラスのインスタンスでは speak メソッドが “Dog barks" を返し、Cat クラスのインスタンスでは “Cat meows" を返します。
オーバーライドにより、継承関係にあるクラス間でメソッドの振る舞いをカスタマイズでき、多態性(Polymorphism)を実現します。

ディスカッション
コメント一覧
まだ、コメントがありません