unity游戲開發-C#語言基礎篇(面向對象-繼承帶參和不帶參 )

class Program
    {
        static void Main(string[] args)
        {
            RoundClass round = new RoundClass(2);//實例化子類函數時,先執行父類構造函數,再執行子類的構造函數;
            round.show();



             SphereClass sphere = new SphereClass();
            sphere.d; //通過實例化也調用不了d,因為d是受保護的,只能給父類和子類使用;要調用d必須改權限 
            round.a// 點不出來,a在父類是私有的;






            //練習

            SphereClass sph = new SphereClass();

            RoundClass rou = new RoundClass();

            rou.ShowDate();

            Console.ReadKey();

        }
    }
 class RoundClass : SphereClass//子類:父類
    {
        public RoundClass(int rr)
            : base("1")
        {//調用父類帶參構造函數;// 子類構造函數(形參) base(實參)
            Console.WriteLine("這是子類的構造函數!");
        }

        public void ShowDate()
        {
            Console.WriteLine("這是子類的普通方法!");
        }

        public void show()
        {

            Console.WriteLine("半徑是:{0}直徑是:{1}", r, d);//子類直接調用父類的屬性或 字段
            this.ShowSphere();
            this.ShowDate();
            base.ShowDate();

        }

        public RoundClass()
            : base()
        {

            Console.WriteLine("這是子類的不帶參函數!");
        }

        public RoundClass(int rr)
            : base(rr)
        {
            this.R = rr;
            Console.WriteLine("這是子類的帶參函數!");
        }

        public void Show()
        {

            Console.WriteLine("這是子類的普通方法");
        }

        public void ShowDate()
        {

            this.ShowSphere();
            this.Show();
            base.Show();
        }

    }
 class SphereClass
    {
        public int r;

        //private int a;
        protected int d;


        public int R
        {//屬性
            set { r = value; }
            get { return r; }
        }

        public SphereClass()
        {//構造函數初始化;
            r = 5;
            d = 2 * this.r;
            Console.WriteLine("這是不帶參父類的構造函數!");
        }

        public SphereClass(int _r)
        {//構造函數初始化;父類帶參構造函數
            // r = _r;

            Console.WriteLine("這是帶參父類的構造函數!");
        }


        public void ShowDate()
        {
            Console.WriteLine("這是父類的普通方法!");
        }

        public void ShowSphere()
        {

            Console.WriteLine("半徑是:{0}直徑是:{1}", this.R, d);
        }


        private int r;
        protected int d;

        public int R
        {
            set { r = value; }
            get { return r; }
        }

        public SphereClass()
        {
            r = 5;
            d = 2 * r;
            Console.WriteLine("這是父類不帶參構造函數!");

        }

        public SphereClass(int _r)
        {
            r = _r;
            d = 2 * r;
            Console.WriteLine("這是父類帶參的函數!");


        }


        public void Show()
        {
            Console.WriteLine("這是父類的普通方法!");
        }

        public void ShowSphere()
        {
            Console.WriteLine("半徑{0} 直徑{1}", r, d);

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

推薦閱讀更多精彩內容