C#中有关的访问修饰符

 在C#中有关的访问修饰符主要有以下5种:private(私有的),protected(受保护的),internal (程序集内部的),public(公开的)以及protectde internal(只有本程序内或者继承于该类的类型可以访问)。

      使用访问修饰符修饰的对象有:namespace(命名空间),class(类),struct(结构),enum(枚举),interface(接口),delegate(委托)以及他们的成员等等。下面进行逐一阐释。

      1.namespace:         隐式具有public类别,不能为其显式添加任何访问修饰符。但作为namespace的成员职能具有public或者internal访问级别。

      2.枚举成员:            同命名空间一样,只具有public访问级别,且不能枚举成员添加访问修饰符。

      3.structclass:       当仅包含在namespace中时,默认是internal级别,可以显示为其添加public,internal;  当被包含在一个类的内部的时候,可以是protected或者privatete修饰符。

      4.delegate:             默认具有internal级别

      5.interface:           与类不同,接口默认具有internal级别。接口也可声明为publicinternal6.类的成员:            可以具有5种访问级别。默认为private.

      7.结构的成员:         可以是public,private,internal访问级别。默认是private,因为结构是隐式封闭的。由于结构不具有继承关系,所以不能用protected或者protected internal去修饰结构成员。

      8.接口的成员:         同枚举成员一样,具有public级别,但是不能为其显式添加public关键字。

 public abstract class A
    {
        public A()
        {
            Console.WriteLine('A');
        }

        public virtual void Fun()
        {
            Console.WriteLine("A.Fun()");
        }
    }

    public class B : A
    {
        public B()
        {
            Console.WriteLine('B');
        }

        public new void Fun()
        {
            Console.WriteLine("B.Fun()");
        }

        public static void Main()
        {
            A a = new B();
            a.Fun();

            B b = new B();
            b.Fun();
        }
    }
原文地址:https://www.cnblogs.com/kubimiantiao/p/2457201.html