interface 接口 ---- 可以很方便的解决我们类的单继承问题
1.在java中,接口和类是并列的两个结构
2.如何去定义接口 :定义接口的成员
>JDK7以前:只能定义全局常量和抽象方法
全局常量:public static final 的 ----->书写时可以不写---默认为自带
抽象方法: public abstract的 ----->书写时可以不写---默认为自带
接口中不能定义构造器,也就意味着接口不能实例化
>JDK8以后:除了定义全局常量之外,还可以定义静态方法,默认方法
1.静态方法可以通过接口直接调,目前我们只有通过接口直接调用 !
2.默认方法那就的通过我们得实现类来进行,可以通过接口类对象实现,我们也可以调用重写这 个默认方法
3.如果子类或实现类继承的父类和实现的接口中同名同参数的方法,子类没有重写此方法的情 况下,默认调用的是父类中的同名同参数的方法--》类优先原则
4.如果实现类实现了多个接口,而这多个接口中定义了同名同参数的默认方法,那么在我们实 现类没有重写此方法的情况下,报错----》接口冲突(解决这个问题,我们必须在实现类 重写这个方法)
5.如何在子类或者实现类调用父类,或者接口中被重写的方法
3.接口的实现(implements) 来实现接口
如果实现覆盖了接口中的所有抽象方法,则此实现类就可以实例化
如果实现类没有覆盖接口中所有的方法,则此实现类仍为一个抽象类
如果不想实现所有接口中的方法,那就给我们的类定义为一个抽象类
4.java类可以实现多个接口 ---->打破了java类的单继承性的局限性,实现多个接口我们可以直接声明,通 过逗号分隔开
格式 : class AA extends BB implements CC,DD{}
5.类和类之间继承,接口与接口之间也叫继承,可以多继承,继承依旧和我们的类的继承也一样的
6.接口的具体使用可以体现多态性
7.接口 : 实际上可以看作是一种规范