この問題を解くためには… |
→ 応用編第3日目参照 |
---|
問題3:継承
prob3-1.(難易度:★)
以下のプログラムに、飛行機クラスAirplaneを継承した戦闘機クラスFighterを指定されたとおりの仕様で追加し、期待された実行結果通りにプログラムが動くように改造しなさい。
プロジェクトProblemex2_1/Program.csusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Problemex2_1 { class Program { static void Main(string[] args) { Fighter f = new Fighter(); // 戦闘機クラス Airplane a = new Airplane(); // 飛行機クラス // 飛行機が飛行する a.Fly(); // 戦闘機が飛行する f.Fly(); // 戦闘機が戦闘する f.Fight(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Problemex2_1 { class Airplane { public void Fly(){ Console.WriteLine("飛行する"); } } }
飛行する← Airplaneクラスのメソッドfoo()メソッドflyによる処理
飛行する← Fighterクラスのメソッドfoo()メソッドflyによる処理
戦闘する← Programクラスの静的メソッドfoo()メソッドによる処理
クラスFighterの仕様(メンバ関数)
飛行する← Fighterクラスのメソッドfoo()メソッドflyによる処理
戦闘する← Programクラスの静的メソッドfoo()メソッドによる処理
メソッド名 | 戻り値の型 | 引数 | 概要 |
---|---|---|---|
Fight | void | なし | 「戦闘する」と表示し、改行する。 |
prob2-2.(難易度:★)
以下のプログラムに、基本計算クラスFundClacを継承した新計算クラスNewCalcを指定されたとおりの仕様で追加し、期待された実行結果通りにプログラムが動くように改造しなさい。このさい、必要があれば、FundCalcクラスの必要な部分を改造しなさい。
プロジェクトProblemex2_2/Program.csusing System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Problemex3_2 { class Program { static void Main(string[] args) { NewCalc n = new NewCalc(); n.Number1 = 10; // 一つ目の数を設定 n.Number2 = 2; // 二つ目の数を設定 Console.WriteLine(n.Number1 + " + " + n.Number2 + " = " + n.Add()); Console.WriteLine(n.Number1 + " - " + n.Number2 + " = " + n.Sub()); Console.WriteLine(n.Number1 + " * " + n.Number2 + " = " + n.Mul()); Console.WriteLine(n.Number1 + " / " + n.Number2 + " = " + n.Div()); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Problemex3_2 { class FundCalc { private double number1 = 0.0; // 一つ目の数 private double number2 = 0.0; // 二つ目の数 // number1のプロパティ public double Number1 { set { number1 = value; } get { return number1; } } // number2のプロパティ public double Number2 { set { number2 = value; } get { return number2; } } // 二つの数の和を出力 public double Add() { return number1 + number2; } // 二つの数の差を出力 public double Sub() { return number1 - number2; } } }
10 + 2 = 12
10 - 2 = 8
10 * 2 = 20
10 / 2 = 5
10 - 2 = 8
10 * 2 = 20
10 / 2 = 5
NewCalcクラスのヘッダ クラスNewCalcの仕様(メンバ関数)
メソッド名 | 戻り値の型 | 引数 | 概要 |
---|---|---|---|
Mul | double | なし | フィールドnumber1、number2の積 |
Div | double | なし | フィールドnumber1、number2の商 |