C# 基础知识 protected 关键字

时间:2021-07-29 09:32:54

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    public class A
    {
        protected int x = 123;

internal protected int y = 123;

void Test()
        {
            A a = new A();
            B b = new B();
            //a.x //ok
            //b.x //ok

//a.y //ok
            //b.y //ok

}

}

public class B : A
    {
        void Test()
        {
            A a = new A();
            B b = new B();
           
            //base.x ok
            //base.y ok

//a.x = 10; erro
            //b.x = 10; //ok

//a.y; ok
            //b.y; ok
        }
    }

class Program
    {
        static void Main(string[] args)
        {
            A a = new A();
            B b = new B();
            //a.x = 10; erro
            //b.x = 10; erro

//a.y; ok
            //b.y; ok

}
    }
}

protected 保护访问。只限于本类和子类内部访问;实例不能访问。

需要注意:实例不能访问指的是其他类中。如果是在父类或者子类中的实例当然是可以访问的。