我认为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. 使用internal作为访问修饰符时,程序集包含什么内容?
- 3. 为什么我们不能使用访问修饰符和静态关键字在C#中创建对象?
- 4. 什么是访问修饰符
- 5. 访问修饰符 - 目的是什么?
- 6. JLS:封装关键字前的修饰符
- 7. 参数列表中的修饰符的含义是什么?
- 8. 访问说明符和访问修饰符有什么区别?
- 9. 包私人访问修饰符
- 10. 关于java最终访问修饰符
- 11. 访问修饰符“protected private”在visual C++中做什么?
- 12. Java:为什么构造函数具有访问修饰符?
- 13. 属性访问修饰符;为什么以下工作没有?
- 14. 为什么Java限制隐藏方法的访问修饰符
- 15. 界面成员为什么没有访问修饰符?
- 16. 为什么oop语言没有“只读”访问修饰符?
- 17. 为什么python对常量没有任何访问修饰符?
- 18. 为什么没有“外部”访问修饰符?
- 19. 为什么要在Java中使用访问说明符/修饰符?
- 20. Kotlin:密封类不能“包含”数据类?为什么?
- 21. 确实访问修饰符有任何作用,在封装
- 22. 重新排列IntelliJ中的修饰符关键字
- 23. 在java中访问'final'修饰符类
- 24. 密封关键字混乱
- 25. Delphi访问修饰符
- 26. 内部访问修饰符
- 27. 库级访问修饰符
- 28. EventInfo访问修饰符
- 29. 动态访问修饰符
- 30. 练习访问修饰符
因为它涉及到类的继承? – 2010-08-18 10:37:19