类层次结构设计 - 接口+基类与抽象类

Los*_*ost 4 c# oop

有时我想知道我们确实有接口和抽象类,原因有两个:

  1. 如果您只是为了设计目的而需要多个实现,并且在开发时需要编写代码,那么接口是我们获得的最佳选择.

  2. 如果你想重用代码,那么我们可能会去抽象类.

但是,我看到的东西都不是.

在某些设计中,它就像这个Interface > BaseClass > Child类.

基本上,基类实现所有方法,然后子类从中继承定义.为什么我们不能使用抽象类而不是这个设置?或者这是一个有缺陷的设置?

Mic*_*ers 10

最简单的方法是,如果对象具有IS-A关系,则使用(抽象)基类.像马一样是一种动物.

如果存在CAN关系,那么考虑接口,就像Duck CAN飞行一样,使用IFlying作为可以飞行的鸭子的接口.

  • 这是一个简单易懂的简单回答 (2认同)