1.抽象类确定能够实现接口;
2.这不是有没有意义的事情,是一种思想,当你本身写的类想用接口中个别方法的时候(注意不是全部的方法),那么你就能够用一个抽象类先实现这个接口(方法体中为空),而后再用你的类继承这个抽象类,这样就能够达到你的目的了,若是你直接用类实现接口,那是全部方法都必须实现的; 编程
1.接口能够多继承,抽象类不能实现多继承。设计模式
2.接口只能定义抽象规则,抽象类既能定义抽象规则也能够提供已经实现的成员。spa
3.接口是一组行为规范,抽象类是一个不彻底的类,着重于族的概念。设计
4.接口支持回调,抽象类不能实现回调,由于继承不支持。对象
5.接口只包含方法,属性,索引器,事件的签名,但不能定义字段和包含实现的方法,抽象类能够定义属性,字段,包含有实现的方法。继承
6.接口能够做用于值类型和引用类型,抽象类只能做用于引用类型(如:Struct只能继承接口)索引
7.抽象类应主要用于关系密切的对象,而接口则是适合为不相关的类提供通用功能。接口
8.接口着重于Can——Do关系类型,抽象类则偏重于IS——A式关系事件
9.接口多定义对象的行为,抽象类多定义对象的属性面向对象编程
10.若是要设计小而简练的功能块,则使用接口,若是要设计大的功能单元,则使用抽象类。
11.接口对应的是面向对象编程思想的重要原则:面向接口编程,
抽象类对应的则是设计模式的精髓:面向抽象编程
PS:抽象类的子类继承能够推迟,而接口不能够。