相同: 1 都可以有抽象方法,都要求子类/实现类重写,都是对子类/实现类的要求 2 都不可以被实例化 不同: 1 抽象类是被普通类继承,接口是被普通类实现,只有接口能继承接口 2 一个子类只能继承一个抽象类,一个实现类可以同时实现多个接口 3 抽象类中可以定义普通的成员变量,接口中只能定义共有的静态常量 4 抽象类中可以有非抽象方法,接口中只能是抽象方法(JDK1.7)(在JDK1.8之后,接口中可以定义非抽象方法) 5 抽象类中可以有构造方法,接口中没有构造方法的