2015-06-20 144 views
0

我感到困惑的访问修饰符,所以我想我会问几个简单的问题作出澄清:了解默认访问修饰符

是不是总是这样,在没有访问修饰符的类的数据成员,默认是private,虽然课程本身是internal

class A 
{ 
    int x; 
} 

所以,int xprivate int xclass Ainternal class A

=========================================

而且,为什么下面的代码不能编译?

class A 
{ 
    protected int x; 
} 

public class B : A 
{} 
+0

认为它非常明确的错误信息:_不一致的可访问性:基类'A'比类'B'更难以访问_ – Grundy

+1

如果'namespace'的class A'成员,那么它是'internal'。如果是其他班级的成员,那么它是'私人'。 – PetSerAl

回答

2

由于documentation声明,类和结构默认是内部的,它们的成员是私有的。

该代码不会编译,因为如错误消息所述,您不能继承不易访问的类。在这种情况下,子类将是公开的,父类是内部的。