abstract:抽象的,可以修饰类和方法
修饰类时,该类为抽象类,不可被实例化
修饰方法时,该方法为抽象方法,只有方法的声明,没有方法体
包含抽象方法的类,一定是抽象类,但抽象类中的方法,可以没有抽象方法
子类继承抽象类时,要重写父类中所有的抽象方法,否则该子类也是抽象类需要用abstract修饰,不能被实例化
接口使用interface来定义
接口与类是两个并列的结构
接口中成员的定义:
3.1 JDK7即以前:只能定义全局常量和抽象方法
>全局常量:public static final,可以省略不写
>抽象方法:public abstract
3.2 JDK8:除了可以定义全局变量和抽象方法之外,还可以定义静态方法、默认方法
接口中不能定义构造器,意味着不能被实例化
接口通过类去实现(implements)的方式来使用,如果实现的类覆盖了接口中所有的抽象方法,则此类可以实例化,没有覆盖所有抽象方法,则该类为抽象类
类可以实现多个接口,弥补了类单继承的局限性
接口与接口之间可以继承,而是可以多继承
一个类既要继承又要实现接口时,要先继承再实现