応用練習問題②:継承

継承の設計練習をします。

応用問題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の仕様(メンバ関数)

メソッド名戻り値の型引数概要
fightvoidなし「戦闘する」と表示し、改行する。
期待する実行結果
飛行する
飛行する
戦闘する
問題 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の仕様(メンバ関数)

メソッド名戻り値の型引数概要
muldoubleなしnumber1とnumber2の積を返す。
divdoubleなし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