[英]Interface inheritance combined with class inheritance
我遇到了任务问题,我想请教一下。
我被告知要实现:IPerson接口基于IPerson IEmployee的Person类和扩展IPerson和Person的Employee
最后一句混乱,我不知道如何应对这些要求。 我有一个想法,我想让你验证,因为Person和Employee将使用List存储,然后:
IEmployee会扩展IPerson和Employee只是实现IEmployee吗? 或者除此之外,员工还应该扩展人员?
谢谢你回答这个问题!
所有员工都是员工,因此所有员工都实施了IEmployee
和IPerson
。 Employee
类扩展了Person
类。
public interface IPerson
{
}
public class Person : IPerson
{
}
public interface IEmployee : IPerson
{
}
public class Employee : Person, IEmployee
{
}
这就是你想要的:
public interface IPerson { }
public interface IEmployee : IPerson { }
public class Person : IPerson { }
public class Employee : Person, IEmployee { }
问题实际上是你应该在实现接口层次结构之前三思而后行......
您不希望强制接口实现类实现将不使用的方法,因此请考虑使用IEmployee作为参数的方法是否还需要所有 IPerson属性。 如果不是更好的定义只有所需属性的新接口。
这对应于SOLID原则的接口隔离 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.