メソッドのオーバーロード
CoddyのJavaジャーニー「基礎」セクションの一部。レッスン 54/73。
Java では、メソッドのオーバーロードを使用すると、同じ名前で異なるパラメーターを持つ複数のメソッドを定義できます。つまり、似たような機能を実行するメソッドを複数持ちながら、それぞれ異なるデータ型や異なる数の引数を扱うことができます。
重要なのは、オーバーロードされた各メソッドが一意のメソッドシグネチャを持たなければならないということです。メソッドシグネチャは、メソッドの名前と、そのパラメーターの型および順序によって決まります。
メソッドのオーバーロードに関する主なルールは次のとおりです。
- 同じ名前:オーバーロードされたすべてのメソッドは、同じ名前でなければなりません。
- 異なるパラメーター:メソッドの各バージョンは、パラメーターの数、パラメーターの型、またはその両方が異なっていなければなりません。
- 戻り値の型だけでは不十分:オーバーロードされたメソッドは、戻り値の型だけを違いにすることはできません。異なるパラメーターリストを持つ必要があります。
メソッドのオーバーロードを説明する例を見てみましょう。
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
public static int add(int a, int b, int c) {
return a + b + c;
}
}この例では、addという名前のメソッドが3つあります。1つ目は2つの整数を加算し、2つ目は2つの倍精度浮動小数点数を加算し、3つ目は3つの整数を加算します。
Java は、メソッド呼び出し時に渡された引数に基づいて、どのメソッドを呼び出すかを決定します。
メソッドのオーバーロードにより、コードはより読みやすく再利用しやすくなります。類似したタスクを実行するメソッド(例:addInts、addDoubles、addThreeInts)に異なる名前を付ける代わりに、単一の名前 add を使用し、コンパイラーにコンテキストに基づいて適切なメソッドを選択させることができます。
覚えておきましょう:オーバーロードには、異なるパラメーター型またはパラメーター数が必要であり、異なるパラメーター名や戻り値の型だけでは不十分です。
自分で試してみよう
このレッスンにはコードチャレンジは含まれていません。
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Javaオンラインコンパイラ