注:
抽象类与普通类的唯一区别就是 不能创建实例对象 和 允许有abstract方法
1、接口可以继承接口。抽象类可以实现(implements)接口,抽象类可继承具体类;抽象类中可以有静态的main方法。
2、接口与抽象类的相同点:
(1)、两者都不能直接实例化对象
(2)、两者的子类(实现类)都是要么覆盖重写所有抽象方法,要么就是抽象类
(3)、两者都 不能直接用final修饰,因为两者固定要被继承或实现
3、接口与抽象类的区别:
(1)、抽象类用abstract关键字,接口用interface关键字
(2)、抽象类以供继承(extends),接口以供实现(implements)
(3)、抽象类只能单继承,而接口可以多实现
(4)、抽象类可以有构造方法和静态代码块,接口中不能有构造方法和静态代码块
(5)、抽象类中可以有普通成员变量,接口中没有普通成员变量(只有类似常量的成员变量)
(6)、抽象类中的 抽象方法 可以用public、protected和默认类型(使用默认类型时,开发工具不报错)修饰;接口中的 抽象方法 只能用public修饰
(7)、抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型 可以任意,但接口中定义的变量 只能是public static final类型 ,并且 默认即为public static final类型