ポリモーフィズム(Polymorphism)とオーバーライドの例

Record2の
Scannerを引数とするinitメソッドを、
Record3でオーバーライドする例です。

そして、これを利用し、
Scannerを引数とするコンストラクタも
Record3クラスに追加します。

この変更後のクラス図を 右記に示します。
の部分が追加するメソッドです。


以下にこの Record3クラスに追加するするコードを 示します。

	//商品コードと数量、単価をキー入力するオバーライドメソッド
	public void init(java.util.Scanner stdin)
	{
		super.init(stdin);// スーパークラスのinitを呼び出す
		//この場合はsuperを省略でません。省略すると、
		//自身を呼び出す(再帰)ため無限ループなり、StackOverflowErrorの実行エラーになる
		System.out.print("  単価>>");
		String s = stdin.nextLine();
		tanka = Integer.parseInt(s);
	}

	//商品コードと数量、単価をキー入力で生成するコンストラクタ
	public Record3(java.util.Scanner stdin)
	{
		init(stdin);//商品コードと数量、単価をキー入力
	}

上記の追加メソッドを確認するためのプログラムを、Test.javaで作成して、 その実行結果を示します。

D:\java>java Test
Record3をキー入力生成
  商品コード>>A10
  数量>>10
  単価>>100
   1番目レコード
        商品コード:A10
        数量:10
        単価:100
キー入力で変更
  商品コード>>B20
  数量>>20
  単価>>200
   1番目レコード
        商品コード:B20
        数量:20
        単価:200
Record2を生成して、キー入力で変更
  商品コード>>C30
  数量>>30
   1番目レコード
        商品コード:C30
        数量:30

D:\java>

上記の実行ができるプログラムを以下に示します。 ■■■■の部分を正しく直して完成させましょう。

←正しく修正してからクリックください。

←わからない場合は、クリック