相同:1、都不能直接实例化。
2、都包含可以由派生类继承的成员。
3、都可以用于声明变量,此时,该变量可以指向派生类实现的对象。该变量可以直接调用接口或抽象类定义的成员,但是不能调用在派生类中定义的成员。
不同:1、派生类只能直接集成一个抽象类,但是可以同时继承多个接口。
2、抽象类可以没有方法体,也可以有方法体,方法体可以是虚方法,在派生类中重写。接口成员不可以有方法体。
3、接口的成员都是公共的,抽象类的成员可以是私有的。
4、接口成员不能包含字段、构造函数、析构函数、静态成员或常量。