这里protected 的派生类为什么不能修改属性

问题遇到的现象和发生背景

书上例子,打出来有问题

问题相关代码,请勿粘贴截图
运行结果及报错内容

s.Age=20;报错

我的解答思路和尝试过的方法

不理解

我想要达到的结果
using System;

namespace 类对接口的实现
{
    public interface I_Salary
    {
        decimal Salary
        {
            get;set;
        }
    }
    public class Person
    {
        private string P_name = "张三";
        private int P_age = 12;
        public void Display()
        {
            Console.WriteLine("姓名:{0},年龄:{1}", P_name, P_age);
        }
        public string Name//定义属性名称
        {
            get { return P_name; }
            set { P_name = value; }
        }
        public int Age
        {
            get { return P_age; }
            protected set { P_age = value; }//只允许person类派生类修改属性
        }
    }
    public class Employee:Person,I_Salary
    {
        private decimal salary;
        public new void Display()
        {
            base.Display();
            Console.WriteLine("薪金:{0}", salary);
        }
        public decimal Salary
        {
            get { return salary; }
            set { salary = value; }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Employee s = new Employee();
            s.Name = "田七";//修改属性Name
            s.Age = 20;//修改属性Age?
            s.Salary = 2000;//修改属性Salary
            s.Display();
        }
    }
}


protect是父类及其子类才能修改,你这是另一个类无法修改,去掉就行