C# オブジェクト指向プログラミング コース 実験 5: 実験名: C# オブジェクト指向テクノロジ
実験内容:C#オブジェクト指向技術
1. 実験の目的と要件
- (1) クラスの継承特性を習得する。
- (2) C# を使用してクラスの継承を実装する方法を学びます。
- (3) クラスのポリモーフィックな特徴を理解する。
- (4) C# メソッド書き換えの使い方を学ぶ。
2. 実験環境
マイクロソフト ビジュアル スタジオ 2008
3. 実験内容と手順
3.1. 実験内容:クラスのテスト、ポリモーフィズムの実現
実験内容:テストクラス、ポリモーフィズムの内容は以下の通り
Vehicles という基本クラスを定義して、車両を表します。このクラスには、商標を表す文字列型の属性 Brand と、色を表す Color を含める必要があります。また、Run (運転、コンソールに「I have started」を表示) と仮想メソッド ShowInfo (情報を表示、コンソールに商標と色を表示)、プロパティを初期化するためのコンストラクターの作成も含める必要があります。Vehiclesクラスから継承したCar(車)クラスを記述し、int型属性Seats(座席)を追加し、メンバーメソッドShowInfo(コンソールに車の情報を表示)を書き換え、構築メソッドを記述します。Vehiclesクラスから継承したTruck(トラック)クラスを記述し、float型メンバ属性Load(オーバーロード)を増やし、メンバメソッドShowInfo(コンソールにトラック情報を表示)を書き換え、構築メソッドを記述する。上記の型を Main メソッドでテストして、ポリモーフィズムを実現します。
3.2. 実験手順
3.2.1. 実験手順
1. 実験手順は以下の通り
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 实验五_1_
{
class Vehicles
{
private string Brand; //字段
private string Color;
public Vehicles(string brand, string color) //构造函数
{
Brand = brand;
Color = color;
}
public Vehicles()
{
}
public void Run()
{
Console.WriteLine("我已经开动了");
}
public virtual void ShowInfo() //虚方法
{
Console.WriteLine("商标: {0},颜色: {1}", Brand, Color);
}
}
class Car : Vehicles
{
private int Seats;
public Car(int seats)
{
Seats = seats;
}
public override void ShowInfo() //重载虚方法
{
Console.WriteLine("座位: {0}", Seats);
}
}
class Truck : Vehicles
{
private float Load;
public Truck(float load)
{
Load = load;
}
public override void ShowInfo()
{
Console.WriteLine("载重: {0}顿", Load);
}
}
class Program
{
static void Main(string[] args)
{
Vehicles car = new Vehicles("奔驰", "红色");
Vehicles truck = new Vehicles("东风", "蓝色");
Car carSeat = new Car(4);
Truck truckLoad = new Truck(2);
car.ShowInfo();
truck.ShowInfo();
carSeat.ShowInfo();
truckLoad.ShowInfo();
Console.ReadLine();
}
}
}
3.2.2. 実験結果
2. 実験結果は次のとおりです。
3.3. 実験内容: Vehicle クラスを作成し、抽象クラスとして宣言する
実験内容:Vehicle クラスを作成し、以下のように抽象クラスとして宣言します。
Vehicle クラスを作成し、abstract と宣言します。文字列値を返すように、Vehicle クラスで NumOfWheels メソッドを宣言します。Vehicle クラスから継承された Car と Motorbike の 2 つのクラスを作成し、これら 2 つのクラスに NumOfWheels メソッドを実装します。Car クラスでは「Four Wheels」の情報が表示され、Motorbike クラスでは「Two Wheels」の情報が表示されます。Main() メソッドで Car と Motorbike のインスタンスを作成し、コンソールにメッセージを表示します。
3.4. 実験手順
3.4.1. 実験手順
1. 実験手順は次のとおりです。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 实验五_2_
{
abstract class Vehicle
{
public virtual void NumOfWheels() //创建虚方法
{
}
}
class Car:Vehicle
{
public override void NumOfWheels() //重载虚方法,输出信息
{
Console.WriteLine("四轮车");
}
}
class Motorbike : Vehicle
{
public override void NumOfWheels()
{
Console.WriteLine("双轮车");
}
}
class Program
{
static void Main(string[] args)
{
Car car = new Car(); //创建派生类的对象
Motorbike motorbike = new Motorbike();
car.NumOfWheels(); //调用派生类的方法
motorbike.NumOfWheels();
Console.ReadLine();
}
}
}
3.4.2. 実験結果
2. 実験の実行効果は次のとおりです。
4. 実験のまとめ
- 1. この実験を通じて、C# の派生クラスの使用、メソッドの書き換え、およびメソッドのポリモーフィズムをマスターしました。
- 2. クラスの継承特性をマスターする。
- 3. 基底クラスの属性を派生クラスに継承する概念を深める 基底クラスの属性に加えて、派生クラスにも独自の属性があります。
- 4. 最初の実験では、基本クラスに「0」パラメータ コンストラクタがありませんでした。
だから私は文を追加しました
public Vehicles()
{
}
- 基本クラスに引数のないコンストラクターを持たせます。