C# 基础知识 protected 关键字

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 保护访问。只限于本类和子类内部访问;实例不能访问。

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

原文地址:https://www.cnblogs.com/51net/p/3951981.html