我認爲sealed
應該包含在C#語言的訪問修飾符列表中。有人可以說出它被排除在外的原因嗎?爲什麼密封關鍵字不包含在訪問修飾符列表中?
回答
的訪問修飾符定義誰可以訪問該方法或類,並當(即:private
:只有類成員,public
:其他人等)。將方法或類標記爲sealed
意味着它不能被繼承。它本身沒有說明訪問本身。
正確地說:如果您使用sealed
關鍵字(除非默認訪問修飾符適合您),您仍然需要添加訪問修飾符。
您的困惑可能是因爲兩個關鍵詞似乎都是關於保護級別的。這是真的,但我們沒有保護修飾符的概念。 sealed
關鍵字被稱爲密封修飾符,因爲它修改了要封閉的類或方法。這就像一個布爾開關:一個類或方法是封閉的或不是,不管它的訪問修飾符如何。
爲了增加混淆,存在密封訪問器,這意味着不允許派生訪問者(gettor/settor)(C#標準10.7.5)。
它不是一個訪問修飾符,這與是否一類可以從或不能被繼承...
like'abstract' – abatishchev 2010-08-18 10:39:58
一個類,或一個方法,或一個屬性 – Abel 2010-08-18 10:53:41
因爲如果你不能從一個類派生這並不意味着你不能訪問它。
以下所有有效類定義功能sealed
類,但它們都具有不同級別的訪問權限,所以你可以看到,sealed
不是一個訪問修飾符,因此不列爲一個由微軟:
public sealed class MyPublicClass
{
}
internal sealed class MyInternalClass
{
}
private sealed class MyPrivateClass
{
}
你必須相信,微軟確實知道他們創建的語言的一些東西:)
Anders Hejlsberg架構語言c#,他來自Borland ;-) – Abel 2010-08-18 10:52:59
- 1. 包訪問(protected修飾符)
- 2. 什麼是訪問修飾符
- 3. 參數列表中的修飾符的含義是什麼?
- 4. 訪問說明符和訪問修飾符有什麼區別?
- 5. 關於java最終訪問修飾符
- 6. 爲什麼沒有「外部」訪問修飾符?
- 7. 界面成員爲什麼沒有訪問修飾符?
- 8. 爲什麼python對常量沒有任何訪問修飾符?
- 9. 爲什麼oop語言沒有「只讀」訪問修飾符?
- 10. 屬性訪問修飾符;爲什麼以下工作沒有?
- 11. 確實訪問修飾符有任何作用,在封裝
- 12. 密封關鍵字混亂
- 13. 在java中訪問'final'修飾符類
- 14. 如何發佈僅包含鍵盤字符(無修飾符)的SWT鍵事件?
- 15. 通過訪問修飾符
- 16. 保護訪問修飾符
- 17. 類訪問修飾符
- 18. EventInfo訪問修飾符
- 19. 爲什麼KeyValueConfigurationCollection不密封?
- 20. 爲什麼LINQ不包含「distinct」關鍵字?
- 21. 什麼是VB6中屬性的默認訪問修飾符?
- 22. 如何在Java中使用訪問修飾符(爲什麼使用getter方法?)
- 23. 屬性的不同訪問修飾符?
- 24. 訪問修飾符和訪問說明符之間有什麼區別
- 25. 爲什麼不是下面的java代碼產生錯誤? (訪問修飾符)
- 26. 爲什麼我們不能指定一個類的默認訪問修飾符
- 27. 訪問修飾符C# - 內部修飾符
- 28. 類和訪問修飾符在.NET
- 29. javascript中的類和訪問修飾符
- 30. 爲什麼這個閉包不能訪問'this'關鍵字? - jQuery的
因爲它涉及到類的繼承? – 2010-08-18 10:37:19