书上例子,打出来有问题
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是父类及其子类才能修改,你这是另一个类无法修改,去掉就行