抽象类:抽象类是特殊的类,只是不能被实例化(将定义一个或多个纯虚函数的类称为抽象类);
虽然无法定义抽象类的实例,但是可以定义它的指针,并且指向抽象类的指针实际上是在赋值时指向其继承类的实例化对象的。
接口:在C++中用抽象类实现,而在C#和Java中用interface实现。
区别:
(1)概念不一样。接口是对动作的抽象,而抽象类是对共性的提取。
(2)是否实现不一样。抽象类在定义类型方法时,可以给出方法的实现部分,也可以不给出;而接口中所定义的方法均不能给出其实现部分。
(3)联系:如果采用抽象类实现接口,则可以把接口中的方法映射到抽象类中作为抽象方法而不必实现。而在抽象类的子类中实现该方法。