はじめに
前回の記事では、Javaのコンストラクタについて紹介しました。
前回の記事
本記事では、Javaのオーバーロードについて紹介します。
オーバーロードとは
オーバーロードとは、同じクラス内に引数の数や型が異なる同じ名前のメソッドを2つ以上定義することです。

オーバーロードで同じ名前のメソッドにすることで、メソッドを使う人が "引数の型を意識せずに使える"というメリットがあります。

スポンサーリンク
例えば、同じような機能のメソッドで引数にint型とdouble型があるとします。オーバーロードを使わない場合は、それぞれ違うメソッド名で定義する必要があります。
そのため、メソッドを使う人は引数の型によって使うメソッドを選択します。
オーバーロードを使う場合、同じような機能で引数にint型とdouble型がある場合でもメソッド名は同じです。
そのため、メソッドを使う人は引数の型を気にする必要がありません。
このようにオーバーロードを使うことで、メソッドを使う人が "引数の型を意識せずに使える"というメリットがあります。
オーバーロードの使用例
それでは、オーバーロードの簡単なサンプルを紹介します。次の例では「add」というメソッド名でオーバーロードしています。
[オーバーロードの例]
public class Calculation { public int add(int a, int b) { return a + b; } public int add(int a) { return a + 1; } public double add(double a, double b) { return a + b; } }
次にオーバーロードしたメソッドを呼び出して実行するmainメソッドのサンプル例です。呼び出し側は引数の型を意識せず「add」メソッドを呼び出しています。
[mainメソッド]
public class MainSample { public static void main(String[] args) { Calculation cal = new Calculation(); System.out.println("引数2つ(int型)のメソッド:" + cal.add(2,2)); System.out.println("引数1つ(int型)のメソッド:" + cal.add(10)); System.out.println("引数2つ(double型)のメソッド:" + cal.add(2.5,1.1)); } }
[実行結果]
引数2つ(int型)のメソッド:4 引数1つ(int型)のメソッド:11 引数2つ(double型)のメソッド:3.6
オーバーロードができない場合
オーバーロードするには決まりごとがあります。次のような場合はオーバーロードすることができません。
■引数の変数名だけが異なっている
public int add(int a) {
// 処理
}
public int add(int b) {
// 処理
}
■戻り値だけが異なっている
public int add(int a) {
// 処理
}
public double add(int a) {
// 処理
}

終わりに
本記事では、Javaのオーバーロードについて紹介しました。
次回の記事では、Javaのアクセス修飾子について紹介します。
次回の記事