Java 関数のオーバーロードを使用すると、シグネチャは異なるが同じ名前を持つ関数を作成できます。可視性は、プライベート、パッケージ レベルのプライベート、プロテクト、パブリックをサポートするアクセス制御レベルによって制御されます。たとえば、calculateArea() 関数をオーバーロードして、circle または square 引数を受け入れ、アクセス制御レベルに応じてさまざまな場所からアクセスできます。
Java 関数のオーバーロードのアクセス制御レベル
Java での関数のオーバーロードを使用すると、同じ名前で異なる複数の関数を定義できます。署名機能。これらの関数は、異なるパラメーターの型、パラメーターの数、戻り値の型を持つことができます。関数のオーバーロードでは、アクセス制御レベルによって、さまざまなパッケージおよびクラスに対するオーバーロードされたメソッドのさまざまなバージョンの可視性が決まります。
Java 関数のオーバーロードによってサポートされるアクセス制御レベル
Java 言語は、次のアクセス制御レベルをサポートします:
実用的なケース
オーバーロードされた calculateArea()
関数が形状 (円または円) に基づいて値を受け入れる次の例を考えてみましょう。 square) 異なるパラメーター:
public class ShapeCalculator { public double calculateArea(Circle circle) { return Math.PI * circle.getRadius() * circle.getRadius(); } public double calculateArea(Square square) { return square.getWidth() * square.getWidth(); } }
この例では、calculateArea()
関数の 2 つのバージョンを宣言します:
calculateArea(Circle Circle )
円形のオブジェクトをパラメータとして受け取り、その円の面積を返します。 calculateArea(Square square)
正方形のオブジェクトをパラメータとして受け取り、その正方形の面積を返します。 calculateArea()
関数の両方のバージョンは、public
として宣言されているため、どのクラスからでもアクセスできます。したがって、これらの関数は次のいずれかの場所で使用できます。
アクセス制御レベルは、オーバーロードされたメソッドのさまざまなバージョンをオーバーライドしたり書き換えたりする場合にも重要であることに注意してください。たとえば、サブクラスでは、同じまたはより幅広いアクセス制御レベルを持つ親クラスのメソッドのみをオーバーライドできます。
以上がJava 関数オーバーロード メカニズムでサポートされるメソッド アクセス制御レベルは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。