相同点:
1.都位于继承的顶端,用于被其他子类或接口继承或实现.
2.都不能实例化.
3.都可以定义抽象方法,其非抽象子类必须覆写这些抽象方法.
区别:
1.接口没有构造方法,抽象类有构造方法.
2.接口只能包含抽象方法,抽象类可以包含普通方法和抽象方法.
3.一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口(接口弥补了java的单继承)
4.变量:接口里默认是public static final修饰,抽象类是默认包访问权限.
5.方法:接口里默认是public abstract修饰,抽象类默认是包访问权限.
6.内部类:接口里默认是public static修饰,抽象类默认是包访问权限.