2010-08-18 28 views

回答

6

访问修饰符定义可以访问该方法或类,并(即:private:只有类成员,public:其他人等)。将方法或类标记为sealed意味着它不能被继承。它本身没有说明访问本身。

正确地说:如果您使用sealed关键字(除非默认访问修饰符适合您),您仍然需要添加访问修饰符。

您的困惑可能是因为两个关键词似乎都是关于保护级别的。这是真的,但我们没有保护修饰符的概念。 sealed关键字被称为密封修饰符,因为它修改了要封闭的类或方法。这就像一个布尔开关:一个类或方法是封闭的或不是,不管它的访问修饰符如何。

为了增加混淆,存在密封访问器,这意味着不允许派生访问者(gettor/settor)(C#标准10.7.5)。

9

它不是一个访问修饰符,这与是否一类可以从或不能被继承...

+4

like'abstract' – abatishchev 2010-08-18 10:39:58

+1

一个类,或一个方法,或一个属性 – Abel 2010-08-18 10:53:41

5

因为如果你不能从一个类派生这并不意味着你不能访问它。

1

以下所有有效类定义功能sealed类,但它们都具有不同级别的访问权限,所以你可以看到,sealed不是一个访问修饰符,因此不列为一个由微软:

public sealed class MyPublicClass 
{ 
} 

internal sealed class MyInternalClass 
{ 
} 

private sealed class MyPrivateClass 
{ 
} 

你必须相信,微软确实知道他们创建的语言的一些东西:)

+0

Anders Hejlsberg架构语言c#,他来自Borland ;-) – Abel 2010-08-18 10:52:59