接口继承与类继承相结合

时间:2015-10-15 13:15:41

标签: c# inheritance

我对任务给出了问题,我想征求意见。

我被告知要实施: IPerson界面 基于IPerson的人类 IEmployee和Employee扩展IPerson和Person

最后一句混乱,我不知道如何应对这些要求。我有一个想法,我想让你验证,因为Person和Employee将使用List存储然后:

IEmployee是否会扩展IPerson和Employee才能实现IEmployee?或者除此之外,员工还应该扩展人员?

感谢您回答这个问题!

3 个答案:

答案 0 :(得分:7)

所有员工都是员工,因此所有员工都实施IEmployeeIPersonEmployee类扩展了Person类。

public interface IPerson
{
}

public class Person : IPerson
{
}

public interface IEmployee : IPerson
{
}

public class Employee : Person, IEmployee
{
}

答案 1 :(得分:2)

这就是你想要的:

public interface IPerson { }
public interface IEmployee : IPerson { }
public class Person : IPerson { }
public class Employee : Person, IEmployee { }

答案 2 :(得分:1)

问题实际上是在实现接口层次结构之前你应该三思而后......

您不希望强制接口实现类实现不使用的方法,因此请考虑使用IEmployee作为参数的方法是否还需要所有 IPerson属性。如果不是更好的定义只有所需属性的新接口。

这符合SOLID原则的Interface segregation