有时我想知道我们确实有接口(interface)和抽象类有两个不同的原因:
如果您只是出于设计目的需要多个实现并在开发时针对某些内容进行编码,那么接口(interface)是我们的最佳选择。
如果您想重用代码,那么我们可能会选择抽象类。
但是,我看到了两者都不是的东西。
在某些设计中,它就像这样Interface > BaseClass > Child
类。
所以基本上一个基类实现了所有的方法,然后子类继承了它的定义。为什么我们不能使用抽象类来代替这个设置?或者这是一个有缺陷的设置?
最佳答案
最简单的推理是,如果对象具有 IS-A 关系,则使用(抽象)基类。就像马是一种动物。
如果有 CAN 关系,然后考虑接口(interface),比如如果鸭子可以飞,使用 IFlying 作为可以飞的鸭子的接口(interface)。
关于c# - 类层次结构设计——接口(interface)+基类与抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363421/