1. 普通类:只有具体实现
    2. 抽象类:具体实现和规范(抽象方法)都有!
    3. 接口:只有规范。约束和实现分离:面向接口编程

    接口的本质是契约

    抽象类: extends 单继承
    类 可以实现接口 implements 接口,可以多继承
    实现了接口的类,就需要重写接口中的方法
    多继承-利用接口实现多继承
    接口中的所有属性,都是常量
    接口中的所有定义其实都是抽象的


    作用:

    1. 约束
    2. 定义一些方法,让不同的人实现
    3. public abstract
    4. public static final
    5. 接口不能被实例化,接口中没有构造方法
    6. implements可以实现多个接口
    7. 必须要重写接口中的方法