接口和抽象类的区别是什么 方法差异成员变量差异实现类实现数量差异实现类实现方法差异抽象概念差异 方法差异 接口方法默认为public,所有方法在接口中不能有实现(JDK8开始接口可以有默认方法) 抽象类中可以有非抽象方法 成员变量差异 接口中的实例变量默认为final类型 抽象类的实例变量不一定为final类型 实现类实现数量差异 一个类可以实现多个接口 一个类至多实现一个抽象类 实现类实现方法差异 一个类实现接口要实现接口的所有方法 一个类实现抽象类不一定要实现所有方法 抽象概念差异 接口时对行为的抽象,是一种行为的规范 抽象时对类的抽象,是一种模板设计 一个类实现了两个接口且两个接口中有同名默认方法,则必须重写改方法,否则会报错