1,接口的方法没有方法体(JDK1.8之前),JDK1.8之后也会有默认的方法体,而抽象类可以有非抽象的方法,有方法体(非抽象方法)
public void getUserName(); default boolean isEmpty(){ return false; }
2,接口的方法的访问修饰符都是public,抽象类的抽象方法可以有public、protected和default这些修饰符
3,抽象类中可以有普通成员变量,接口中没有普通成员变量
4,一个类可以实现多个接口,但只能实现一个抽象类。
5,抽象类可以有构造方法,只是抽象类的构造方法不能直接调用 因为抽象类不能实现实例,但是一旦一个普通类继承了抽象类 便也可以在构造函数中调用其抽象类的构造函数
接口没有构造方法
来源:https://www.cnblogs.com/pickKnow/p/11059165.html