Javaでは通常、同じクラス内に、同じ名前のメソッドを複数作ることはできません。しかし例外があり、引数が異なる場合は作れます。こういった手法で、同じ名前のメソッドを複数作ることを、メソッドの「オーバーロード」と呼びます。
public class MyClass { public static int myMethod() { return 0; } public static int myMethod(int i) { return 1; } public static int myMethod(int i, int j) { return 2; } public static int myMethod(String s) { return 3; } }
オーバーロードは、似たような処理を行いたいが、引数が何種類かのパターンに分かれるような時に使います。
例えば、引数に数値を取りたい場合、int、doubleなど、引数がそれぞれの型のメソッドを用意しておきます。そうすれば、使う側は数値変数の種類を気にせず、そのメソッドを利用できます。
public class MyClass { public static int plusOne(int i) { return i + 1; } public static double plusOne(double f) { return f + 1.0; } }
int res1 = MyClass.plusOne(1); double res2 = MyClass.plusOne(1.0);
また、引数の数を変えて、同じ名前のメソッドを作る時にも使います。
public class MyClass { public static void print(String s) { System.out.println(s); } public static void print(String s1, String s2) { System.out.println(s1 + s2); } }
MyClass.print("明日は"); MyClass.print("明日は", "晴れです");