unity游戲開發(fā)-C#語言基礎(chǔ)篇(面向?qū)ο?繼承重載重寫覆蓋)

    class Program
    {
        static void Main(string[] args)
        {
            BasketBall basket = new BasketBall(5);

            //basket.showFulei();

            basket.Playing(3);
            basket.Playing("男");

            TableTennis table = new TableTennis();

            YumaoBall yumao = new YumaoBall();

            Console.ReadKey();
        }
    }
 class Ball
    {
        private int r;

        private string colour = "紅色";

        private string speed = "2m/s";

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

        public string Colour
        {
            get { return colour; }
            set { colour = value; }
        }

        public int R
        {
            get { return r; }
            set
            {
                if (value > 0)
                {
                    r = value;
                }
                else
                {
                    Console.WriteLine("輸入半徑不能小于零!");
                }
            }
        }

        public Ball()
        {
            Console.WriteLine("球類不帶參的構(gòu)造函數(shù)!");
        }

        public Ball(int _r)
        {
            r = _r;
            Console.WriteLine("球類帶參的構(gòu)造函數(shù)!");
        }

        public void Mainji()
        {
            Console.WriteLine("面積是{0}", 4 * Math.PI * r * r);
        }

        public void Tiji()
        {
            Console.WriteLine("體積是{0}", 4 / 3 * Math.PI * R * R);
        }



        //----------虛函數(shù)-重寫--------//注意重寫跟重載的方法區(qū)別 寫在父類和子類中
        //父類 virtual 虛方法
        //子類 override 
        public virtual void Moving(string speed)
        {

            Console.WriteLine("父類的移動(dòng)方式:滾!");
        }


        //覆蓋:寫在父類和子類中 使用關(guān)鍵字new 返回類型相同 方法同名

        public new void ZuoYong()
        {
            Console.WriteLine("父類-球的作用效果!");
        }

    }
 class BasketBall:Ball
    {
          public BasketBall()
        {
            Console.WriteLine("子類不帶參的構(gòu)造函數(shù)!");
        }

        public BasketBall(int _r)
            : base(_r)
        {
            if (_r > 0)
            {
                this.R = _r;
            }
            else
            {
                Console.WriteLine("輸入半徑不能小于零!");
            }
            Console.WriteLine("子類帶參的構(gòu)造函數(shù)!");
        }

        public void showFulei()
        {
            base.Tiji();
            Console.WriteLine(base.Colour);
        }


        //----------------------------重載-------------------
        //方法名一樣 傳參的類型不一樣 與返回值無關(guān)- 在子類使用-------------------
        public void Playing(int age) {
            if (age<5)
            {
                Console.WriteLine("用腳踢!");
            }
        }

        public void Playing(string sex)
        {
            if (sex == "男")
            {
                Console.WriteLine("用手打!");
            }
           



        }  
            
    }
 class TableTennis:Ball
    {
        public TableTennis()
        {
            // this.Moving();
            this.ZuoYong();
        }
        //重寫是 返回類型一樣 方法名必須一樣 參數(shù)一樣 加上關(guān)鍵修飾符
        public override void Moving(string str1)
        {
            Console.WriteLine("冰瓶子類球移動(dòng)方式為彈!");
        }


        public new void ZuoYong()
        {
            Console.WriteLine("子類-兵乓球的作用效果!");
        }
    }
 class YumaoBall:Ball
    {
        public YumaoBall()
        {
            // this.Moving();
        }

        //重寫是 方法名必須一樣 參數(shù)一樣
        public override void Moving(string s1)
        {
            Console.WriteLine("羽毛球子類球移動(dòng)方式為拋!");
        }


        protected new void ZuoYong()
        {
            Console.WriteLine("子類-羽毛球的作用效果!");
        }
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容