C# 一些 concept
C# class
new Method: 用在 derived class 中,指明該 method 會 hide 掉 base class 中相同的 method
new public void Func1() { ...; }
virtual Method: 當一個 method 預期會在 derived class 被 override,但 base class 又要有 implementation 時使用。
public virtual void Func1() { ...; }
override Method: 用來指明該 method 是 override base class 中的相同 method
public override void Func1() { ...; }
Note: virtual 與 override 為可預期的,因為設計初期就知道這種行為。但 hiding(使用 new Method)是不可預期的,通常為一個錯誤情況。
C# interface
interface: 完全沒有 implementation,只有宣告。實作部份要由 derived class 來實現。
abstract class: 不能被繼承的 class
abstract Method: 類似 virtual Method,但沒有實作部份,因此 derived class 必需 override 它。
sealed class: 不能被當成 base class 的 class。
sealed Method: 不能再被 derived class override 的 method。
new Method: 用在 derived class 中,指明該 method 會 hide 掉 base class 中相同的 method
new public void Func1() { ...; }
virtual Method: 當一個 method 預期會在 derived class 被 override,但 base class 又要有 implementation 時使用。
public virtual void Func1() { ...; }
override Method: 用來指明該 method 是 override base class 中的相同 method
public override void Func1() { ...; }
Note: virtual 與 override 為可預期的,因為設計初期就知道這種行為。但 hiding(使用 new Method)是不可預期的,通常為一個錯誤情況。
C# interface
interface: 完全沒有 implementation,只有宣告。實作部份要由 derived class 來實現。
abstract class: 不能被繼承的 class
abstract Method: 類似 virtual Method,但沒有實作部份,因此 derived class 必需 override 它。
sealed class: 不能被當成 base class 的 class。
sealed Method: 不能再被 derived class override 的 method。
留言
張貼留言