いいえ、Java での関数のオーバーロードはインスタンス メソッドに対してのみ機能し、クラス メソッド (静的メソッド) には機能しません。インスタンス メソッドは特定のオブジェクトに関連付けられているのに対し、クラス メソッドはクラス自体に関連付けられているためです。
#Java 関数のオーバーロード メカニズムはすべてのメソッドに適用されますか?
Java では、関数のオーバーロードは、名前は同じでパラメータ リストが異なる複数のメソッドを作成できるようにする手法です。ただし、すべてのメソッドをオーバーロードできるわけではありません。 インスタンス メソッド にのみ適用され、クラス メソッド (静的メソッドとも呼ばれます) には適用されません。
なぜインスタンス メソッドにのみ適用されるのでしょうか?
クラス メソッドは、特定のオブジェクトではなくクラス自体に関連付けられたメソッドです。一方、インスタンス メソッドは、特定のオブジェクトに関連付けられたメソッドです。したがって、オーバーロード メカニズムは、特定のオブジェクトにバインドできるインスタンス メソッドに対してのみ機能します。
#実践的なケース #次の例は、インスタンス メソッドをオーバーロードする方法を示しています。
class Person { // 重载方法 1 - 计算两个整数的和 public int sum(int a, int b) { return a + b; } // 重载方法 2 - 计算三个整数的和 public int sum(int a, int b, int c) { return a + b + c; } // 测试重载方法 public static void main(String[] args) { Person p = new Person(); int result1 = p.sum(1, 2); // 调用重载方法 1 int result2 = p.sum(1, 2, 3); // 调用重载方法 2 System.out.println(result1); // 输出 3 System.out.println(result2); // 输出 6 } }
関数のオーバーロードには、インスタンス メソッドにのみ適用されることに加えて、次の追加の制限があります。
以上がJava 関数のオーバーロード メカニズムはすべてのメソッドで機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。