接口和抽象之间有什么区别以及依赖注入如何

Tom*_*ove -5 c# oop

我想知道aan interfaceabstract班级之间的区别是什么?有什么利弊,什么时候应该使用什么?

在这些问题旁边,我还可以使用抽象类进行依赖注入吗?因为我正在使用DI并且想要声明静态字段/私有方法

Ode*_*ded 5

接口不能有实现.

抽象类可以有实现 - 这可以由继承/实现类型使用.

如果要在继承类型之间共享实现,请使用抽象类,以允许代码重用(并保持DRY).

另外,一个类可以实现任意数量的接口,但只能从一个类继承,所以这是另一个考虑因素.