Javaのオーバーロードされたメソッドの呼び出し規則は何ですか?
Javaのオーバーロードされた関数の呼び出し規則は次のとおりです。
- パラメータの型と個数を元に、コンパイラは関数呼び出し時にオーバーロードされた関数の候補リストを作成します。
- 引数の型が与指定引数の型と完全に一致する場合、その関数が最適一致として選択されます。
- パラメータの型が提供されるパラメータの型と完全一致する関数が複数ある場合、コンパイラは最も具体的なパラメータの型を持つ関数を選択します。
- 完全一致する関数が無い場合、引数の型が自動型変換で一致する関数を最良一致とみなす
- 自動型変換で複数関数とのマッチングが可能なら、最も具体的な引数の型の関数を選択する。
- マッチする関数が存在しないか、複数の最適一致関数が存在する場合、コンパイラはエラーを出し、関数の呼び出しが曖昧であることを示唆する。
Javaはオーバーロード関数の選択時に戻り型を考慮せず、パラメーターの型と数だけでマッチングを行います。