iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
0
Modern Web

征服C#系列 第 17

Day17 物件導向繼承性

今天來學習關於物件導向的第二個特性-繼承性

繼承性:

1.繼承性(Inheritance):可以讓物件繼承其他物件(class)的屬性與行為
2.C#之中,想要使用繼承只需要在定義 class 時,於 class 名稱後面加上「:」(冒號) 與被繼承的 class 名稱即可

Base Class(基底類別)

class Creature
    {
        //property 設定HP500並用private隱藏
        private int HP = 500;

        //method   可以得到我的HP多少
        public int GetHP()
        {
            return HP;
        }
        //受傷的method
        public void Injured(int injured)
        {
            HP -= injured;
        }
        
    }

Derived Class(衍生類別)

class Villager : Creature //繼承Creature
    {

        public string Talk()
        {
            return "今天天氣不錯";
        }
    }

Derived Class(衍生類別)

class Monster : Creature  //繼承Creature
    {
        //攻擊的method,因為繼成了Creatur所以參數可以使用基底類別系統自己會判斷是哪一個衍生類別
        public void Attack(Creature c)
        {
            c.Injured(10);
        }

    }

主程式:

private void Button1_Click(object sender, EventArgs e)
        {
            Villager v1 = new Villager();
            Monster m1 = new Monster();
            Monster m2 = new Monster();

            //m2開始攻擊v1、m1
            m2.Attack(v1);
            m2.Attack(m1);
            //顯示v1、m1的HP
            MessageBox.Show("" + v1.GetHP());
            MessageBox.Show("" + m1.GetHP());
        }

結語:花一點時間來理解繼承的部分,如有錯誤請跟小弟通知!謝謝


上一篇
Day16 物件導向封裝性-所以到底甚麼是封裝性?
下一篇
Day18 番外篇-亂數
系列文
征服C#21

尚未有邦友留言

立即登入留言