什么是接口:
接口
是Java中一个比较特殊的概念,在构建大型的程序或在程序框架的时候需要经常去编写接口
,当我们在编写大型的框架下的程序的时候也会经常去实现接口
比如: Swing , Android 等等是一个非常常用的概念
-
接口这个概念到底是什么:
首先
接口
这个词语本身表示两个事物的连接处
那么在现实之中我们有个东西叫USB接口
, 为了让某些不知道USB接口是啥的同学了解我还是上一张图:
蓝色箭头指向的接口就是USB接口
, 我们平时在这个上面可以插入:U盘
数据线
键盘
鼠标
.....
还有很多很多的其他设备, 那么这些设备很明显就不一样而
把不一样的标准进行统一的接入
就是接口
这种事物的主要作用
Java中的接口:
-
Java中的接口的使用:
假设你设计了一个使用Java编写的GUI(图形用户接口)框架, 在这个框架里吗你有一个控件叫做
按钮
一个
按钮
被点击以后当然会有所反应但是这个反应导致的后果是不确定的
, 因为需要未来使用这个框架的开发者去决定点击这个按钮点击后究竟是干嘛, 是调转到下一个页面
还是打开新的页面
还是调用浏览器打开url
等等, 按照传统思维
有多少个需求就有多少个方法去实现, 但是需求是千奇百怪的, 是无穷无尽, 是滔滔不绝的,不可能去把所有情况封装成方法, 而且作为一个框架需要保证其鲁棒性
不能限制开发者的手脚.这个时候
接口
的作用就出现了
接口
中只定义没有方法体(逻辑内容)抽象方法
和静态变量
例如这个点击事件接口:interface Click{ public static int TEST_NUM = 1; public abstract void OnClick_Func(); }
现在
假设
我们设计了一个按钮类:class Button{ private Click click; ...... private void NowClick(){ click.OnClick_Func(); } public void setClick_Func(Click click){ this.click = click; } ...... }
可以看到设计的
Button
类中已经有部分逻辑; 假设当按钮被按下的时候就会执行NowClick()
方法NowClick()
调用了OnClick_Func()
方法OnClick_Func()
中的参数就是接口Click
但是Click
中的方法没有逻辑, 这就是巧妙之处Click
中的方法需要使用接口的人去填充:public class main { public static void main(String[] args) { Button button = new Button(); button.setClick_Func(new Click() { @Override public void OnClick_Func() { /*填充的逻辑*/ } }); } }
可以看到这就是对一个接口的
匿名实现
通过这种方式在需要以接口
为参数的地方快速的实现了接口的功能.以上便是一个接口在Java编程中的实际应用
-
接口与类与抽象类:
接口
没有构造器
接口
不能用来实例化对象接口
中所有的方法都是抽象方法(java1.8/java8)之后可以不用使用abstract
关键字接口
中只能有static
和Final
修饰的成员变量接口
支持多继承
接口
是抽象类
而抽象类
不一定是接口
以上便是接口的主要内容,如有错误欢迎指正.