この問題を解くためには…
 → 応用編第2日目参照

問題2:継承

prob2-1.(難易度:★)

以下のプログラムに、飛行機クラスAirplaneを継承した戦闘機クラスFighterを指定されたとおりの仕様で追加し、期待された実行結果通りにプログラムが動くように改造しなさい。

probex2-1:Airplane.java
package problemex2;

public class Airplane {
	public void fly(){
		System.out.println("飛行する");
	}
}

Problemex2_1.java
package problemex2;

public class Problemex2_1 {

	public static void main(String[] args) {
		Fighter f = new Fighter();		//  戦闘機クラス
	    Airplane a = new Airplane();	//  飛行機クラス
	    //  飛行機が飛行する
	    a.fly();
	    //  戦闘機が飛行する
	    f.fly();
	    //  戦闘機が戦闘する
	    f.fight();

	}

}
期待される実行結果
飛行する← Airplaneクラスのfly()メソッドによる処理
飛行する← Fighterクラスのfly()メソッドによる処理
戦闘する← Fighterクラスのfly()メソッドによる処理
クラスFighterの仕様(メンバ関数)
メソッド名 戻り値の型 引数 概要
fight void なし 「戦闘する」と表示し、改行する。

prob2-2.(難易度:★)

以下のプログラムに、基本計算クラスFundClacを継承した新計算クラスNewCalcを指定されたとおりの仕様で追加し、期待された実行結果通りにプログラムが動くように改造しなさい。このさい、必要があれば、FundCalcクラスの必要な部分を改造しなさい。

probex2-2:FundCalc.java
package problemex2;

public class FundCalc {
	private double number1 = 0.0;	//	一つ目の数
	private	double number2 = 0.0;	//	二つ目の数
	//	一つ目の数を設定
	public void setNumber1(double number1){
		this.number1 = number1;
	}
	//	二つ目の数を設定
	public void setNumber2(double number2){
		this.number2 = number2;
	}
	//	一つ目の数を設定
	public double getNumber1(){
		return number1;
	}
	//	二つ目の数を設定
	public double getNumber2(){
		return number2;
	}
	//	二つの数の和を出力
	public double add(){
		return number1 + number2;
	}
	//	二つの数の差を出力
	public double sub(){
		return number1 - number2;
	}
}
Problemex2_2.java
package problemex2;

public class Problemex2_2 {

	public static void main(String[] args) {
		 NewCalc n = new NewCalc();
		 n.setNumber1(10);   //  一つ目の数を設定
		 n.setNumber2(2);    //  二つ目の数を設定
		 System.out.println(n.getNumber1() + " + " + n.getNumber2() + " = " + n.add());
		 System.out.println(n.getNumber1() + " - " + n.getNumber2() + " = " + n.sub());
		 System.out.println(n.getNumber1() + " * " + n.getNumber2() + " = " + n.mul());
		 System.out.println(n.getNumber1() + " / " + n.getNumber2() + " = " + n.div());
	}

}
期待される実行結果の例
10 + 2 = 12
10 - 2 = 8
10 * 2 = 20
10 / 2 = 5

NewCalcクラスのヘッダ クラスNewCalcの仕様(メンバ関数)

メソッド名 戻り値の型 引数 概要
mul double なし フィールドnumber1、number2の積
div double なし フィールドnumber1、number2の商