接口

接口

使用接口的原则
使用接口解决多继承
使用接口为外部类添加功能
以面向对象的角度考虑将一个类与生俱来的特征和行为和依赖于外部的可选的特征和行为分离,让类尽可能的丰富,让我们在程序设计的时候,不在关注具体的类,而是分离关注类上拥有哪些接口所定义的能力,从而做到程序设计时,类类的直接关系,变换为类—接口—类,这种变换关系,也被称之为“解耦”。

接口的优点
将设计和实现分离,(调用者)隐藏了实现(而通常调用者也不需要关心实现)
面向接口编程是OOP的核心

接口和抽象类的区别
1、 接口里所有的方法都是abstract的,所有的属性都是public static final
2、 抽象类是接口的部分实现,既能定义abstract方法,也能定义普通方法和属性,比接口更加灵活

JDK1.8之后,出现的新的特性
1、 接口中可以添加非抽象方法,但需要使用default关键字来声明非抽象方法,但此时的default已经不再是一个访问修饰符,而真正的访问修饰符,依旧是poblic
2、 接口中可以使用static声明静态方法,但是必须要有方法体的实现“{ }”