*
都不能被直接實例化,都可以通過繼承實現其抽象方法。
*
都是面向抽象編程的技術基礎,實現了諸多的設計模式。
不同點
*
接口支持多繼承;抽象類不能實現多繼承。
*
接口只能定義抽象規則;抽象類既可以定義規則,還可能提供已實現的成員。
*
接口是壹組行為規範;抽象類是壹個不完全的類,著重族的概念。
*
接口可以用於支持回調;抽象類不能實現回調,因為繼承不支持。
*
接口只包含方法、屬性、索引器、事件的簽名,但不能定義字段和包含實現的方法;抽象類可以定義字段、屬性、包含有實現的方法。
*
接口可以作用於值類型和引用類型;抽象類只能作用於引用類型。例如,struct就可以繼承接口,而不能繼承類。