当抽象类中没有具体成员 全部都是抽象方法 即抽象到极致 引起了质变——>接口

    1.什么是接口(通常是为了定义规则的)
    接口不是类 但接口还.是一个类的结构 只不过用interface修饰 替换原有的class 如public interface Test(){}
    1.1 有什么成员
    属性 不能含有一般属性 只能含有公有的静态的常量 即public static final(这个不写也行 因为默认就是这个)
    方法 不能含有一般方法 只能含有公有的抽象的方法(1.8版本后多了 default修饰具体方法)
    块 不能含有 一般程序块 和 static块(块本身就是具体的 接口不让有具体的)
    构造方法 不能含有构造方法(因为构造方法是为了创建对象 但是方法是抽象的不需要用对象空间来记录 属性存在静态区 所以都用不到对象 所以不需要构造方法)

    1.2 如何使用 能不能创建对象?
    因为没有构造方法 不能创建对象
    只能通过子类多实现(implements)来做事
    public class A implements B,C,D{

    }

    1.3 接口与接口 接口与类的关系
    接口不能继承别的类 抽象类具体类都不行 因为接口已经是最抽象的了
    抽象类——可以直接多实现——接口
    public abstract A implements B,C,D{

    }
    具体类——不可以直接多实现——接口 (需将接口中的抽象方法具体化 或者 具体类也变为抽象类)
    接口——可以直接*多继承——接口

    2.例子
    设计一款游戏 王者荣耀
    游戏里有什么

    英雄——抽象类
    坦克 法师 射手 刺客——抽象类
    小兵——抽象类
    坦克兵 普通小兵 超级兵——抽象类
    Buff——抽象类
    防御塔
    水晶

    接口——定义规则 定义一些功能
    比如普通攻击

    普通类——继承 射手 实现接口