為什麼 C# 中無法繼承靜態類別?
儘管實際希望以層次結構組織靜態類,但 C# 限制了此類類的繼承。這種限制源自於語言創建者的設計考量。
根據 C# 語言 PM Mads Torgersen 的說法,靜態類別繼承是沒有根據的,因為:
此外,.NET 中的繼承僅在基於實例的方法上運行。靜態方法是在類型層級而不是實例層級定義的,缺乏用於重寫的必要虛擬表。呼叫靜態方法也不同於實例方法,因為它們缺乏將目前實例作為第一個參數的隱式傳遞。這使得編譯器無法確定在繼承過程中呼叫哪個方法。
作為部分解決方案,可以利用單例模式來模擬繼承的靜態類別的行為,而不會違反語言限制。
以上是為什麼C#中靜態類別不能繼承?的詳細內容。更多資訊請關注PHP中文網其他相關文章!