淺話繼承

抽象類

abstract class My

    {

        public abstract string Name  //抽象屬性

        {

            get;

            set;

        }

        abstract public void Method();

        public  void Method2()

        {

            Console.WriteLine("My.method2");

        }

     }

    class We : My

    {

        public override string Name  //

        {

            get

            {

                return "";

            }

            set

            { }

        }

        public override void Method()

        {

            Console.WriteLine("!!!!!!!!!!!!!");

        }

 

        public void Method2()

        {

            Console.WriteLine("We.Method2");

        }

    }

    abstract class Wo : My

    {

        public  void Method2()

        {

            Console.WriteLine("Wo.method2");

        }

}
抽象類基類中的抽象屬性和方法要在派生類中實現,即派生類要包含抽象基類中所有抽象成員。抽象類可以繼承抽象類可以不實現基類中的抽象成員,抽象類亦可以繼承其它類。

接口interface IPhone

    {

        string Name

        {

            get;

        }

        string Number

        {

            get;

            set;

        }

    }

    class Mobile : IPhone

    {

        string name = "手機";

        public string Name

        {

            get

            {

                return name;

            }

        }

        public string Number

        {

            get;

            set;

        }

    }

注意繼承接口時類中的成員爲public,接口成員必須被子類全部實現。

在派生類中方法加new可以顯示隱藏父類方法,父類不受影響。

在基類的方法中加入virtual關鍵字,在派生類方法加override關鍵字可以重寫,但是不能越級覆蓋。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章