Skip to main content

メソッドオーバーロードとは何ですか?

methodメソッドオーバーロードは、2つ以上のメソッドが同じ名前を共有しているが異なるパラメーターを持っているほとんどのオブジェクト指向プログラミング言語の機能です。具体的には、パラメーターの数、データ型、および/または順序は異なります。コードがコンパイルされると、正しい方法は、それがどのように呼び出されるかに基づいて自動的に選択されます。メソッドは一部のプログラミング言語でも関数として知られているため、メソッドオーバーロードは関数過負荷と呼ばれることもあります。Getarea(Square S)として定義される場合があります。この方法を過負荷にして、メソッドgetarea(円c)を追加することにより、円の面積をさらに計算できます。それらの方法署名—メソッド名、パラメーターの数、およびパラメーターデータ型とmdash;それ以外の場合は一意でなければなりません。このようにして、コンパイラは実行する方法を決定できます。これは、非デフォルト値を持つオブジェクトを初期化するために行われます。たとえば、2つのフィールド(名前と生年月日、またはDOB)を持つ従業員オブジェクトには、従業員()、従業員(名前)、従業員(名前、DOB)の過負荷コンストラクターがあります。最初のコンストラクターは、空白の名前とDOBフィールドを持つ従業員オブジェクトを作成します。2番目は名前フィールドを設定しますが、DOBフィールドを空白のままにし、3番目は名前とDOBフィールドの両方を定義します。getarea()の例では、物理的に2つの方法がありますが、発信者には単一の論理getarea()メソッドが表示されます。このようにして、getarea()を拡張して他の形状で動作することができます—三角形、台形など—依然として単一の方法として論理的に提示します。複雑な計算を行う方法には、わずかな変更でオプションで同じ計算を実行するための新しい要件が与えられる可能性があります。計算&mdashの実行方法を決定するメソッドに新しいパラメーターが追加されます。古い方法または新しい方法。方法メソッドが呼び出されるすべてのケースを見つけて新しいパラメーターを追加する必要がないため、メソッドは過負荷になります。新しい方法には古い署名があり、既存のコードによって呼び出されます。ロジック自体は含まれておらず、単に変更されたメソッドを呼び出して、新しいパラメーターの「古い方法」のデフォルトで渡すだけです。新しいコードは、修正された方法を呼び出し、適切な値、古い方法、または新しい方法で新しいパラメーターを渡します。メソッドオーバーロードは、メソッドオーバーライドと同じではありません。メソッドオーバーライドは、親クラスのメソッドの定義が子供クラスによって変更される場所です。この場合、両方の方法に同じ署名があります。