| この問題を解くためには… |
| → 応用編第3日目参照 |
|---|
問題3:継承
prob3-1.(難易度:★)
以下のプログラムに、飛行機クラスAirplaneを継承した戦闘機クラスFighterを指定されたとおりの仕様で追加し、期待された実行結果通りにプログラムが動くように改造しなさい。
プロジェクトProblemex2_1/Program.cs
using 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.cs
using 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の商 |









