区别1、结构组成
抽象类是包含抽象方法的类,用abstract修饰,可具有普通类的属性和方法。与普通类的区别是包含抽象方法。
接口是抽象类的更进一步,用interface定义一个接口,接口中只能包含抽象方法和静态常量。
区别2:权限
抽象类:各种权限。
接口:public权限。
区别3:子类的使用
抽象类使用extends关键字继承。
接口使用implements关键字实现接口。
区别4:两者间的关系
一个抽象类可以实现若干接口。
接口不能继承抽象类,但是接口可以使用extends关键字继承多个父接口。
区别5:与子类的关系
一个子类只能继承一个抽象类。
一个子类可以实现多个接口。
核心区别:
抽象类中可以包含普通方法和普通字段,并且这样的普通方法和字段可以被子类直接使用而不必重写。
接口中不能包含普通方法,子类必须重写所有的抽象方法。