接口
简单说就是一系列抽象方法的集合,如果一个类实现了某个接口,即继承了这个接口的所有抽象方法,则该类必须实现这些抽象方法。
抽象类
首先,与接口不同的是,抽象类不能直接创建实例对象,抽象类中的抽象方法只能在其子类中实现(即通过extends的方式而不是implements),因此可以把抽象类看作是提供给继承的子类的一个模板。抽象类本身没有任何用处,它是为了继承而存在的,创建一个抽象类而不去继承它等于是做了无用功。
相同点
1、都可以被继承,
2、都不能被实例化,
3、都包含抽象方法,
4、都可以实现程序的多态性
不同点
1、接口不能定义静态方法,抽象类可以,
2、接口中的数据成员只能是常量,
3、抽象类可以定义非抽象方法,而接口中所有的方法都是抽象的