整理影片中說明重點
- abstract method 不會有程式內容
namespace MVATwentyQuestions { abstract class absClass { public abstract void DisplayValue(string value) { // DoSomething } } }
- abstract method 繼承後,一定要 override
namespace MVATwentyQuestions { class absClassInherited : absClass { // 故意把 overirde comment 起來並執行 // override public void DisplayValue(string value) // { // Console.WriteLine(value); // } } }
- virtual method 一定要有程式內容
namespace MVATwentyQuestions { class virtClass { public virtual void DisplayValue(string value); // 故意把程式內容 comment 起來並執行 // { // Console.WriteLine(value); // } } }
- 宣告為 virtual 的 method,繼承後才可以進行 override
namespace MVATwentyQuestions { class virtClass { // 故意把 virtual 拿掉 public void DisplayValue(string value) { Console.WriteLine(value); } } class virtClassInherited : virtClass { public override void DisplayValue(string value) { Console.WriteLine(value.ToUpper()); } } }
- 設定為 virtual 的 method,沒有一定要 override
namespace MVATwentyQuestions { class virtClass { public virtual void DisplayValue(string value) { Console.WriteLine(value); } } class virtClassInherited : virtClass { // public override void DisplayValue(string value) // { // Console.WriteLine(value.ToUpper()); // } } }
沒有留言:
張貼留言