考虑Employee(员工)、Manager(经理)和Assistant(助手)类:
目标是禁止一段代码像这样访问属性:
因为
问题:
.NET的继承实现中是否有修饰符可以删除
更新:
非常感谢大家的回答。我希望通过简化和刻意设计的Emp/Mgr能够在这个问题中体现出来。很明显,在这个例子中,继承应该被转换成另一个共性(例如
public class Emp
{
public string Name { get; set; }
public Manager Manager { get; set; }
public Assistant Assistant { get; set; }
}
public class Manager : Emp
{
}
public class Assistant : Emp
{
}
目标是禁止一段代码像这样访问属性:
var foo = new Manager();
var elmo = new Emp();
elmo.Manager = foo;
elmo.Manager.Manager = new Manager();
//how to disallow access to Manager.Manager ?
因为
Manager
继承自Emp
,所以它有.Manager
和.Assistant
属性。问题:
.NET的继承实现中是否有修饰符可以删除
.Manager
和.Assistant
属性?更新:
非常感谢大家的回答。我希望通过简化和刻意设计的Emp/Mgr能够在这个问题中体现出来。很明显,在这个例子中,继承应该被转换成另一个共性(例如
Person
,其中类会共享姓名、出生日期等)。非常感谢您的回答!