応用問題2:継承
参考:応用2日目
問題 2-1
★
以下のプログラムは、飛行機(Airplane)クラスを継承した戦闘機(Fighter)クラスのインスタンスを生成し、各クラスのメソッドを実行するプログラムである。このプログラムが期待される実行結果通りに動くように、Fighterクラスを完成させなさい。
Java
package problemex2;
public class Airplane {
public void fly(){
System.out.println("飛行する");
}
}
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();
}
}
クラスFighterの仕様(メンバ関数)
| メソッド名 | 戻り値の型 | 引数 | 概要 |
|---|---|---|---|
| fight | void | なし | 「戦闘する」と表示し、改行する。 |
期待する実行結果
飛行する
飛行する
戦闘する
飛行する
戦闘する
問題 2-2
★
以下のプログラムは、基本計算クラス(FundCalc)を継承した新計算クラス(NewCalc)のインスタンスを生成し、各クラスのメソッドを実行するプログラムである。このプログラムが期待された実行結果通りに動くように、NewCalcクラスを完成させなさい。
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;
}
}
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());
}
}
クラスNewCalcの仕様(メンバ関数)
| メソッド名 | 戻り値の型 | 引数 | 概要 |
|---|---|---|---|
| mul | double | なし | number1とnumber2の積を返す。 |
| div | double | なし | number1とnumber2の商を返す。 |
期待する実行結果
10.0 + 2.0 = 12.0
10.0 - 2.0 = 8.0
10.0 * 2.0 = 20.0
10.0 / 2.0 = 5.0
10.0 - 2.0 = 8.0
10.0 * 2.0 = 20.0
10.0 / 2.0 = 5.0