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() 
{
    
    
}
  • 基本クラスに引数のないコンストラクターを持たせます。

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/m0_47419053/article/details/127140789