引用自一个别人的回答:
普通类具有成员函数,构造类的对象时,不但要为成员变量分配内存,还要为成员函数分配内存。
含有纯虚函数的类,定义了成员函数的地址是空,无法分配内存,成员函数对类是没有意义的,失去了普通类的数据和方法绑定于同一对象中的意义,因此无法构造对象,只能又其派生类继承这些成员函数并实现,才能构造派生类对象。抽象类就起到了定义接口的作用.
含有纯虚函数的类,定义了成员函数的地址是空,无法分配内存,成员函数对类是没有意义的,失去了普通类的数据和方法绑定于同一对象中的意义,因此无法构造对象,只能又其派生类继承这些成员函数并实现,才能构造派生类对象。抽象类就起到了定义接口的作用.
另外自己的见解:
接口无非就是单独定义的一组方法,也许是从很多种类似事物身上抽象出来的共同行为,而不去关心方法是如何实现的,只管拿来用;或者是遵循单一职责原理方便以后添加而单独为某一事物量身定做的一套额外的方法集合体。