繁体   English   中英

是一个抽象类的一种接口?

[英]is an abstract class a type of interface?

在我的/ interfaces文件夹中,我放了所有的接口。

抽象类是一种接口吗?

描述技术差异的答案是正确的,但还有更多。 还有语义差异。

接口和抽象类之间的区别在于接口表示执行某些操作的能力 ,而抽象类表示一类对象的共性

IDisposable界面代表“我知道如何处理我的重要资源”的概念; 这是对象可以做的事情 ,而不是对象是什么

相比之下,如果你要制作一个抽象类动物,那么这将代表所有动物的共同特征。 世界上没有任何物体是“动物”而没有更具体的动物 - 金毛猎犬,大马哈鱼,狮子等等。 我们通过使类抽象来表示这一事实。

在C#中,接口与类(甚至抽象类)不同;

  • 接口只能定义API(方法签名,事件声明,属性声明),而不是实现(字段,方法体等)
  • 您只能继承一个基类,但可以实现多个接口

但它们在某些用法中有相似之处 - 例如在抽象工厂实现中使用时。

不,有几点不同。 主要区别在于抽象类中可以有实现细节。 一个类只能从一个(抽象)类派生,但它可以实现多个接口。 抽象类可以包含字段,而接口则不能。 最后,接口不能在声明的方法上具有访问修饰符,但抽象类可以。

不。抽象类应该包含某些内容的实现,因此它不仅仅是一个接口。

具有所有抽象方法的类可以被视为一种接口,但是,那时为什么不使用接口呢?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM