关于C:接口和抽象之间的区别是什么?Dependency Injection 如何?

What's the difference between interface and abstract and how about Dependency Injection

本问题已经有最佳答案,请猛点这里访问。

我想知道Aan-interfaceabstract班有什么区别?优点/缺点是什么?我什么时候应该使用什么?

除了这些问题,我还能用抽象类进行依赖项注入吗?因为我使用的是DI并且想声明静态字段/私有方法


接口不能有实现。

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

当您希望在继承类型之间共享实现时,可以使用抽象类,以允许代码重用(并保持干燥)。

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


一个区别是抽象类可以包含实现的成员,而接口成员没有任何实现/

另一个原因是接口不能有字段,抽象类可以。

抽象类鼓励对继承它的类重用基代码,接口在实现相同接口的类之间创建兼容性。

如上所述,可以实现多个接口,但只能从一个类继承。