MENU

【Java Silver】メソッドのオーバーロードとオーバーライドによる多態性の理解

今回はメソッドのオーバーロードとオーバーライドに関する問題を解いてみましょう。

問題

次のプログラムを実行した場合の出力として正しいものを選んでください。

class Calculator {
        int add(int a, int b) {
            return a + b;
        }

        double add(double a, double b) {
            return a + b;
        }
    }

    public class Main {
        public static void main(String[] args) {
            Calculator calc = new Calculator();
            System.out.println(calc.add(2, 3));
            System.out.println(calc.add(2.0, 3.0));
        }
    }

選択肢

  • A. 5と5.0が出力される
  • B. 5と5が出力される
  • C. 5.0と5.0が出力される
  • D. コンパイルエラーが発生する

答えと解説

回答を見る

答え

A. 5と5.0が出力される

解説

解説のポイント:

  • メソッドのオーバーロードの理解
  • Javaによる型の選択ロジック

Javaでは、メソッドのオーバーロードを使用すると、同じ名前のメソッドを複数宣言して、引数の型や数を変えることができます。

ここで、calc.add(2, 3)の呼び出しは、int型に一致するaddメソッドを選択し、2 + 3の結果である5を返します。

一方、calc.add(2.0, 3.0)の場合、double型に合わせたaddメソッドが選ばれ、結果は5.0として出力されます。

目次