unity游戲開發-C#語言基礎篇(面向對象-多態_虛函數帶參和不帶參構造函數)

    class Program
    {
        static void Main(string[] args)
        {
            //有一個交通工具類Vehicle,將它作為基類派生小車類Car、卡車類Truck和輪船類Boat,定義這些類并定義一個虛函數用來顯示各類信息。



            Vehicle vehicle = new Vehicle("交通工具", 8, 8);
            Truck truck = new Truck("東風", 18, 18);
            Car car = new Car("小汽車", 28, 28);
            Boat boat = new Boat("輪船", 38, 38);
            truck.ShowMsg();
            car.ShowMsg();
            boat.ShowMsg();
            vehicle.ShowMsg();

         

        }
    }
    class Boat:Vehicle
    {
        public Boat(string _name, int _jiage, int _speed)
            : base(_name, _jiage, _speed)
        {

        }
        public override void ShowMsg()
        {
            Console.WriteLine("輪船{0},價格{1},速度{2}", Name, Jiage, Speed);
        } 
    }
   class Car:Vehicle
    {
        public Car(string _name, int _jiage, int _speed)
            : base(_name, _jiage, _speed)//base 有參數就執行父類的有參數構造函數 沒有就默認執行父類沒有參數的構造函數
        {

        }
        public override void ShowMsg()
        {
            Console.WriteLine("汽車{0},價格{1},速度{2}", Name, Jiage, Speed);
        }
    }
  class Truck:Vehicle
    {
        public Truck(string _name, int _jiage, int _speed)
            : base()
        {
            this.Name = _name;
            this.Jiage = _jiage;
            this.Speed = _speed;
        }
        public Truck(string _name, int _jiage, int _speed)
            : base(_name, _jiage, _speed)
        {

        }

        public override void ShowMsg()
        {
            Console.WriteLine("卡車{0},價格{1},速度{2}", this.Name, this.Jiage, this.Speed);
        }
    }
 class Vehicle
    {
        private string name = "1";
        private int jiage;
        private int speed;

        public string Name
        {
            get { return name; }
            set { name = value; }
        }


        public int Jiage
        {
            get { return jiage; }
            set
            {
                if (value > 0)
                {
                    jiage = value;

                }
                else
                {
                    Console.WriteLine("價格有誤!");
                }
            }
        }


        public int Speed
        {
            get { return speed; }
            set { speed = value; }
        }

        public Vehicle(string _name, int _jiage, int _speed)
        {

            this.name = _name;
            this.jiage = _jiage;
            this.speed = _speed;

        }

        public Vehicle()
        {
            this.ShowMsg();
        }


        public virtual void ShowMsg()
        {
            Console.WriteLine("交通工具{0},售價{1},速度{2}", Name, Jiage, Speed);

        }


    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容