抽象类(abstract class):
1.抽象类中可以定义构造器
2.抽象类中可以定义成员变量和常量
3.抽象类中的成员可以是public,private,默认,protected
4.抽象类中的方法可以是抽象方法也可以是非抽象方法,由抽象方法的类必须被定义为抽象类,而抽象类不一定要有抽象方法。
5.一个类只能继承一个抽象类
6.抽象类中可以有静态方法
接口(interface):
1.接口中不能定义构造器
2.接口中只有常量
3.接口中的成员全是public,接口中字段的修饰符:public static final(默认不写),接口中方法的修饰符:public abstract(默认不写)
4.接口中的方法全是抽象方法
5.一个类可以实现多个接口
6.接口中不可以有静态方法
相同点:
1.都不可以被实例化
2.都可以作为引用类型
3.一个类如果继承了某个抽象类或者实现了某个接口都需要对其中的抽象方法全部进行实现,否则该类仍然需要被声明为抽象类