接口和抽象类的区别 抽象类可以有构造方法 ,接口没有构造方法 抽象类 可以存在非抽象方法, 接口不能存在非抽象方法,必须是抽象方法或者(jdk1.8以后)默认方法或者静态方法. 抽象类中的方法可以是public ,protect和默认类型,但接口中的抽象方法只能是public类型的,默认是public abstract 抽象类中可以有普通成员变量, 接口中不能存在普通成员变量 抽象类和接口中都可以存在静态成员变量,抽象类中的成员变量任意访问权限的变量,接口中的是定义静态常量. 相同点: 抽象类和接口都不能创建对象.