面试题总结——抽象类和接口的对比 一、抽象类与接口的区别 1、结构组成 抽象类:普通类+抽象方法 接口:全局变量+抽象方法 2、权限 抽象类:除private/final外各种权限均可修饰 接口:只能是public修饰 3、子类的使用 抽象类:使用extends继承抽象类 接口:使用implements实现接口 4、子类限制 抽象类:一个子类只能继承一个抽象类 接口:一个子类可以实现多个接口 二、抽象类与接口的联系 1、抽象类可以使用implements实现接口,一个抽象类可以实现若干个接口(抽象类是个加强版的普通类) ①若抽象类实现了接口,可以不实现接口的方法,因为抽象类本身是抽象的,由其子类实现即可。 ②父类已经实现了接口,而子类不仅继承父类,又再实现了一遍接口,目的是为了强调作用,没别的用处。 2、接口不能extends继承抽象类(若能继承就有普通方法、普通属性、构造方法…了,不满足接口的定义) 3、接口可以使用extends继承多个父接口。