オーバーライドの例

右のようなクラス図のクラスがあるとして、入力商品コードの最小値を求めています。 赤が入力です。 以前に作成した最小値のプログラムと比較ください

D:\Java>java Rec3InputMinimum
1件目です。Recordの選択入力>>3
  商品コード>>D05
  数量>>50
  単価>>200
2件目です。Recordの選択入力>>2
  商品コード>>B10
  数量>>90
3件目です。Recordの選択入力>>3
  商品コード>>B05
  数量>>75
  単価>>1000
4件目です。Recordの選択入力>>2
  商品コード>>C01
  数量>>45
5件目です。Recordの選択入力>>2
  商品コード>>Z99
  数量>>0
入力で、最小(辞書並び)の商品コード
  のレコードは次の通りです。
   3番目レコード
        商品コード:B05
        数量:75
        単価:1000

D:\Java>







		

入力範囲の上限が分かっている場合の流れ図は、次のようになります。

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

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

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

//キーのデータ入力用で、initメソッド使ったコード例です。
import rec.Record2;
import rec.Record3;
public class Rec3InputMinimum
{
	public static void main(String[] arg){
		java.util.Scanner stdin = new java.util.Scanner(System.in);
		Record2 recMin = new Record2(Record2.HIGH_VALUE, 0); //最小レコード憶用
		Record2 recHi = new Record2(Record2.HIGH_VALUE, 0); //データとして存在しない最大値用
		Record2 rec;
		int n = 0;	// 入力データ個数用
		int iMin = 0;
		do{
			n++;
			System.out.print(n + "件目です。Recordの選択入力>>");
			String op = stdin.nextLine();
			if (op.equals("2"))	{
				rec = new Record2();
			}else{
				rec = new Record3();
			}
			rec.init(stdin);//ポリモーフィズム利用 
			if (rec.compareTo(recMin) < 0){//入力データの方が小さい
				recMin = rec;
				iMin = n;
			}
		} while (rec.compareTo(recHi) != 0);
		System.out.println("入力で、最小(辞書並び)の商品コード\n  のレコードは次の通りです。");
		recMin.display(iMin);//ポリモーフィズム利用 
	}
}