オブジェクト指向プログラミングの要:オーバーライドの基本と使い方

オーバーライド(Override)とは、プログラミングにおいて、継承された親クラス(スーパークラス)のメソッドを、子クラス(サブクラス)で再定義することを指します。これにより、子クラスは親クラスから引き継いだ機能をそのまま使用するのではなく、独自の実装を提供できるようになります。

オーバーライドの特徴

  1. 継承関係が必要:オーバーライドは、親クラス(スーパークラス)から子クラス(サブクラス)への継承が前提です。
  2. 同じメソッド名:オーバーライドされたメソッドは、親クラスと同じ名前、引数の型や数を持つ必要があります。
  3. 再定義:親クラスで定義されたメソッドを、子クラスでその振る舞いを変更するために再定義します。

例:Javaでのオーバーライド

以下は、Javaでのオーバーライドの例です。

java
class Animal {
// 親クラスのメソッド
public void sound() {
System.out.println("動物が鳴いています");
}
}

class Dog extends Animal {
// 子クラスでメソッドをオーバーライド
@Override
public void sound() {
System.out.println("犬がワンワンと鳴いています");
}
}

public class Main {
public static void main(String[] args) {
Animal myDog = new Dog();
myDog.sound(); // 出力: 犬がワンワンと鳴いています
}
}

この例では、DogクラスがAnimalクラスを継承しています。Dogクラスでsound()メソッドをオーバーライドし、親クラスの汎用的な「動物が鳴く」という動作を、犬専用の「ワンワンと鳴く」という動作に変更しています。

オーバーライドのメリット

  • 柔軟性の向上:親クラスで定義されたメソッドを、子クラスの必要に応じてカスタマイズできるため、柔軟なコード設計が可能です。
  • ポリモーフィズム(多態性)の実現:親クラスの参照を使って、子クラスのオーバーライドされたメソッドを呼び出すことで、ポリモーフィズムを実現できます。これにより、動的に異なるクラスのメソッドが実行されます。

オーバーライドとオーバーロードの違い

  • オーバーライド:親クラスのメソッドを子クラスで再定義すること。
  • オーバーロード:同じクラス内で、異なる引数リストを持つ複数のメソッドを定義すること。

まとめ

オーバーライドは、継承した機能をカスタマイズできる強力な手段です。親クラスの汎用的な機能を子クラスで再定義することで、特定の振る舞いを持たせることができ、プログラムの再利用性や可読性を高めることができます。

コメント

タイトルとURLをコピーしました