Eri*_*ert 14
描述技术差异的答案是正确的,但还有更多.还有语义差异.
接口和抽象类之间的区别在于接口表示执行某些操作的能力,而抽象类表示一类对象的共性.
IDisposable界面代表"我知道如何处理我的重要资源"的概念; 这是对象可以做的事情,而不是对象是什么.
相比之下,如果你要制作一个抽象类动物,那么这将代表所有动物的共同特征.世界上没有任何物体是"动物"而没有更具体的动物 - 金毛猎犬,大马哈鱼,狮子等等.我们通过使类抽象来表示这一事实.
Mar*_*ell 10
在C#中,接口与类(甚至抽象类)不同;
但它们在某些用法中有相似之处 - 例如在抽象工厂实现中使用时.
不,有几点不同.主要区别在于抽象类中可以有实现细节.一个类只能从一个(抽象)类派生,但它可以实现多个接口.抽象类可以包含字段,而接口则不能.最后,接口不能在声明的方法上具有访问修饰符,但抽象类可以.