使用abstract關鍵字可以建立不完整且必須在派生類中實現的類和類成員。
使用sealed關鍵字可以防止繼承以前標記為 virtual 的類或某些類成員。
通過在類定義前面放置關鍵字 abstract,可以將類宣告為抽象類。 例如:
public
abstract
class a
抽象類不能例項化。 抽象類的用途是提供乙個可供多個派生類共享的通用基類定義。例如,類庫可以定義乙個抽象類,將其用作多個類庫函式的引數,並要求使用該庫的程式設計師通過建立派生類來提供自己的類實現。
抽象類也可以定義抽象方法。 方法是將關鍵字 abstract 新增到方法的返回型別的前面。 例如:
public
abstract
class a
抽象方法沒有實現,所以方法定義後面是分號,而不是常規的方法塊。抽象類的派生類必須實現所有抽象方法。 當抽象類從基類繼承虛方法時,抽象類可以使用抽象方法重寫該虛方法。例如:
// compile with: /target:library
public
class d
}public
abstract
class e : d
public
class f : e
}
如果將 virtual 方法宣告為 abstract,則該方法對於從抽象類繼承的所有類而言仍然是虛方法。 繼承乙個抽象方法的類不能訪問該方法的原始實現。在上乙個示例中,類 f 中的 dowork 不能呼叫類 d 中的 dowork。 通過這種方式,抽象類可以強制派生類為虛方法提供新的方法實現。
通過在類定義前面放置關鍵字 sealed,可以將類宣告為密封類。 例如:
public
sealed
class d
密封類不能用作基類。 因此,它也不能是抽象類。 密封類禁止派生。 由於密封類從不用作基類,所以有些執行時優化可以略微提高密封類成員的呼叫速度。
在對基類的虛成員進行重寫的派生類上,方法、索引器、屬性或事件可以將該成員宣告為密封成員。 在用於以後的派生類時,這將取消成員的虛效果。 方法是在類成員宣告中將 sealed 關鍵字置於 override 關鍵字的前面。 例如:
public
class d : c
}
抽象類、密封類及類成員(c# 程式設計指南): C 抽象類 密封類及類成員
1.抽象類和類成員 使用 abstract 關鍵字可以建立必須在派生類中實現的不完整的類和類成員。例如 public abstract class a 抽象類不能例項化。抽象類的用途是提供多個派生類可共享的基類的公共定義。例如,類庫可以定義乙個作為其多個函式的引數的抽象類,並要求程式設計師使用該庫通...
抽象類 密封類及類成員(C 程式設計指南)
抽象類 密封類及類成員 c 程式設計指南 使用 abstract 關鍵字可以建立僅用於繼承用途的類和類成員,即定義派生的非抽象類的功能。使用 sealed 關鍵字可以防止繼承以前標記為 virtual 的類或某些類成員。有關更多資訊,請參見如何 定義抽象屬性 c 程式設計指南 抽象類和類成員 可以將...
抽象類 密封類及類成員(C 程式設計指南)
使用 abstract 關鍵字可以建立僅用於繼承用途的類和類成員,即定義派生的非抽象類的功能。使用 sealed 關鍵字可以防止繼承以前標記為 virtual 的類或某些類成員。有關更多資訊,請參見如何 定義抽象屬性 c 程式設計指南 抽象類和類成員 可以將類宣告為抽象類。方法是在類定義中將關鍵字 ...