语法层次
抽象类和接口分别给出了不同的语法定义。
设计层次
抽象层次不同,抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个 类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽 象。抽象类是自底向上抽象而来的,接口是自顶向下设计出来的。
跨域不同
抽象类所体现的是一种继承关系,要想使得继承关系合理,父类和派生类之间 必须存在"is-a" 关系,即父类和派生类在概念本质上应该是相同的。对于接口则不然,并不要 求接口的实现者和接口定义在概念本质上是一致的,仅仅是实现了接口定义的 契约而已,"like-a"的关系。