メソッド名と引数が同じメソッドオーバーロードの問題を解決する方法
Java では、メソッド名(メソッドシグネチャ)が同じだが、引数の型や個数が異なる場合をメソッドのオーバーローディングといいます。
- メソッドパラメータの型の変更:メソッドパラメータの型を変更して、他のメソッドと区別できます。たとえば、あるメソッドのパラメータが整数である場合、別のメソッドのパラメータは文字列になります。
public void methodName(int num) {
// 方法实现
}
public void methodName(String str) {
// 方法实现
}
- メソッドの引数の数の変更:メソッドの引数の数を変更することにより、他のメソッドと区別できます。たとえば、あるメソッドは引数を持たず、別のメソッドは2つの引数を持つ場合があります。
public void methodName() {
// 方法实现
}
public void methodName(int num1, int num2) {
// 方法实现
}
- パラメーターの順番を変えて、メソッド同士を区別することができます。たとえば、あるメソッドに整数と文字列の2つのパラメーターがあり、順序は整数、文字列です。別のメソッドでは、パラメーターは文字列、整数です。
public void methodName(int num, String str) {
// 方法实现
}
public void methodName(String str, int num) {
// 方法实现
}
- 返り値の型が違う:メソッドのパラメーターが同じでも、返り値の型が異なれば、メソッド名の同名異パラメーター問題を解決できます。
public int methodName(int num) {
// 方法实现
return num;
}
public String methodName(int num) {
// 方法实现
return String.valueOf(num);
}
メソッドのオーバーロードは、同じクラス内で行われる点に注意する必要があります。オーバーロードしたメソッドは、メソッド名が同一で、同じクラスの内部になければなりません。オーバーロードしたメソッドの識別基準は、メソッドのパラメータの型、数、順序、戻り値の型です。