一.接口的定义
如果一个类只是由抽象方法和全局常量组成的,那么在这种情况下不会将其定义为一个抽象类
定义为接口,严格来讲,接口就是一个特殊的抽象类,而且这个类里面只有抽象方法和全局常量。
要定义一口使用interface关键字完成
范例:
interface A{
public static final String MSG = "Hello"; //全局变量
public abstract void run(); //抽象方法
}
由于接口里面存在抽象方法,所以接口对象不可能直接使用new关键字进行实例化对象
1.接口必须有子类,但是一个字累可以实现(implements)多个接口
2.接口的子类(如果不是抽象类),必须重写所有的抽象方法
3.接口的对象可以利用子类对象向上转型进行实例化操作
在定义接口上A,B没有任何联系,但是如果具有相同子类X
范例:
A a = new X();
B b = (B)a;
a instanceOf A ==>true
a instanceOf B ==>true
代码编写时先继承抽象父类,再实现接口(习惯问题,没有严格的要求)
public class A extends B implements C,D{ }
对接口来说,里面的抽象方法和全局变量有事不用使用 public abstract或public static final进行修饰
在接口的方法中没有写public进行修饰,但绝对不是default修饰,而是public修饰。所以建议添上public,
为防止初学者混淆
一个抽象类只能继承一个抽象类,但是一个接口可以使用extends关键字继承多个接口,但是接口不能继承抽象类
这是该接口具有包括父类及自己的所有抽象方法
在整个Java里面,接口的主要功能室解决单继承的问题
虽然从接口的接口上来讲,只能由全局常量和抽象方法组成,但是所有的内部结构是不受这些限制的,也就是说在
接口里面可以定义普通的内部类,抽象内部类,内部接口
如果使用static关键字定义内部接口,表示外部
二. 接口在实际开发中的3大核心作用
1.表示不同层之间的操作标准
所有的代码要进行开发,则首先要开发接口标准,因为有了标准才能开始设计应用程序
好代码标准:
1).客户端调用简单,不需要关注具体细节
2).客户端之外的代码修改,不影响用户的使用,及:用户不用关心代码是否变更
2.表示一种操作的能力
3.表示将服务器的远程方法视图暴露给客户端
三.接口的应用
1.工厂设计模式 Factory
2.代理设计模式 Proxy
核心精髓在于有一个核心主题操作接口(多种)
核心业务主体只完成核心业务代码
想要学习Java开发的同学,可以参考千锋成都Java培训班提供的学习大纲;