C#z中的虛方法,抽象類
阿新 • • 發佈:2019-02-22
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中的虛方法,抽象類