Java オーバーライドとオーバーロードの違い【初心者向け解説】
方法の再定義とオーバーロードは、Javaにおいてポリモーフィズムを実現する方法ですが、その意味と使用シーンには違いがあります。
Override(オーバーライド)とは、サブクラスが親クラスで定義されているメソッドを再定義することであり、メソッド名、パラメータリスト、および戻り値の型がすべて完全に一致している必要があります。サブクラスは親クラスのメソッドをオーバーライドすることで、独自のロジックを実装し、多態性を実現します。メソッドのオーバーライドは主に実行時の多態性を実現するために使用されます。
同じクラス内で複数の同じ名前のメソッドが存在し、パラメータリストが異なる(数、型、順番)ものを言います。戻り値の型は同じでも異なっていても構いません。メソッドのオーバーロードは、プログラマーが異なるメソッドを呼び出しやすくするために使用されます。メソッドのオーバーロードは主にコンパイル時のポリモーフィズムを実装するために使用されます。
要点をまとめると、メソッドのオーバーライドはサブクラスで親クラスのメソッドを再定義して多態性を実現し、メソッドのオーバーロードは同じクラス内で複数の同名メソッドを定義してコンパイル時の多態性を実現します。