我正在努力理解 C# interface
。我知道它们允许多重继承。我正在尝试为一个场景编写代码:员工可以查看自己的数据,但不能查看其他人的数据。如果员工向经理报告,经理可以查看和编辑员工信息。
所以我从一个抽象类开始,因为每个人都是用户并且都一样休假。
public abstract class User {
string _id;
string _firstName;
string _lastName;
double _salaryAmount;
double _bonusAmount;
int _vacationBalance;
public void TakeVacation(int hours) {
_vacationBalance -= hours;
}
//do I implement this here?
/*
public int SalaryAmount{ }
*/
}
我应该使用接口来定义IEditable
andIViewable
吗?我可以做这样的事情吗?
public interface IEditable {
double SalaryAmount { get; set; }
}
public class Employee : User, IEditable {
public double SalaryAmount {
get {
return base._salaryAmount;
}
set {
base._salaryAmount = value;
}
}
}
//Will I need a ReadOnlyEmployee or something?
我只是不确定如何阻止经理编辑用户,或者如何为这种情况编写界面。