不,接口不是类.
接口是一组方法签名以及可能与单个想法相关的属性.例如,IList接口将具有索引,插入和获取元素数量的方法.但是,它没有定义任何实现细节.列表接口可以实现为链接列表,包装数组或任何您想要的,只要它在接口中定义这些方法即可.
类是用于创建实际对象的模板.类是方法签名的集合,以及这些方法的实现.
所以不,接口不是类,因为它只定义了一个特定的契约,而一个类定义了对象的整个行为.
Commenter SquareCog准确地指出上述情况并非完全正确.由于类可以被子类化,并且方法被重写,因此类与对象的实际行为的关系变得更加复杂.我只是通过说类是个体实体来解决这个问题.您可以阅读类的源代码并了解该类包含的行为.但是,在运行时,对象具有类型而不是类.类型是整个继承树,而不是单个类,因此可以在几个不同的类上定义类型的行为.幸运的是,这并没有改变接口是可以暗示(通过名称,参数类型等)某些实现的契约的基本概念差异,但是除了方法签名之外不能强制执行任何操作,而类确实定义了一个实现,即使这不是运行时使用的实际实现.