接口继承与类继承相结合

本文关键字:继承 相结合 接口 | 更新日期: 2023-09-27 18:17:47

我在完成一项任务时遇到了问题,我想征求一下建议。

我被告知要实现:IPerson接口基于IPerson的Person类IEmployee和Employee扩展IPerson和Person

最后一句被弄糊涂了,我不知道如何应付那个要求。我有一个想法,我希望它得到您的验证,因为Person和Employee将使用List存储:

IEmployee会扩展IPerson而Employee只是实现IEmployee吗?或者除此之外,Employee也应该扩展Person ?

谢谢你对这个问题的回答!

接口继承与类继承相结合

所有员工都是人,因此所有员工都实现了IEmployeeIPersonEmployee类是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原则的接口隔离。