c# abstract抽象類與繼承類子類的建構函式_base

wisdomone1發表於2012-03-08
 ///
    /// 抽象類Vehicle
    ///

    abstract class Vehicle
    {
        public int wheels;//公有成員
        public  float weight;//保護成員:重量
        //建構函式也有許可權訪問符public等
        public Vehicle(int w, float g)
        {
            wheels = w;
            weight = g;
        }
        
        //virtual的作用是什麼呢 virtual,在抽象類中標記為virtual的方法,在子類中才可以用override進行重寫
        //virtual宣告的方法之方法體也可以不寫任何東東,僅有一個{}
        public virtual void Speak()
       {
           //--Console.WriteLine("the w vehicle is speaking!");
       }
    }

    class Car : Vehicle //繼承抽象類vehicle
    {
        int passengers;//私有成員:數
        public Car(int w, float g, int p)
            : base(w, g) //:base自動切到下一行 透過base父類的建構函式才可以為父類的域提供值,不然不成:base(w,g),此w,g源於car子類的建構函式的引數
        {
            wheels = w;
            weight = g;
            passengers = p;
        }
        //繼承抽象父類,對抽象父類的virtual方法進行重寫(override)
        public override void Speak()
        {
            Console.WriteLine("the car is speaking:di-di");
        }
    }
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-718054/,如需轉載,請註明出處,否則將追究法律責任。

相關文章