1. 程式人生 > >C#z中的虛方法,抽象類

C#z中的虛方法,抽象類

int 自己 編號 override 狀態 有意義 return 使用 進行

1.虛方法

我在這動物類中定義了一個虛方法 Dosth

    class Animal
    {
        public int Aid;
        public string Name;
        public void SetAid(int i)
        {
            Aid = i;
        }
        public void SetName(string s)
        {
            Name = s;
        }
        public virtual string Dosth()
        {
            
return null; } }

然後定義了一個貓的類和狗的類 都繼承於動物類

 class Dog : Animal
    {
        public override string Dosth()
        {
            base.Dosth();
            return "汪汪汪汪汪汪汪汪";
        }
    }
  class Cat : Animal
    {
        public override string Dosth()
        {
            base
.Dosth(); return "喵喵喵喵喵喵"; } }

貓和狗 雖然都是動物 都有動物編號 自己的愛稱 但是叫聲不一樣

所以虛方法的實現狀態就不一樣

但是動物也可以是啞巴動物 不叫 也就代表著 虛方法可以在子類中實例化 也可以不去實例化

但是非虛方法 就必須去實現

base.Dosth()是可有可無的,這個語句表示 使用基類裏的方法

不使用這行代碼 那就不執行裏面的內容

註意:當父類中有一個方法 在父類中沒有任何意義時,必須要子類進行重寫才有意義的話,這種情況就需要使用抽象方法。

C#z中的虛方法,抽象類