一、接口的概念
个人认为通过USB插口的的例子来理解接口是比较形象的,使用电脑的过程中我们一般用usb插口来连接外部设备,比如鼠标、外接键盘、U盘、散热器等等;但是如果没有usb插口我们就只能将设备连接在电脑内部,这样的话如果需要将外接设备进行更换每一次都需要拆电脑,效率太低,很不方便。
但是有了USB插口后,即插即用,需要更换时拔掉换一个就行;比如你插入U盘计算机就识别U盘,插入鼠标计算机就识别鼠标。
在这里USB插口就是接口,鼠标、U盘、散热器这些都相当于接口的实现类。
接口的优点:
1、降低程序的耦合性
2、使程序易于扩展
3、有利于程序的后期维护
二、接口的使用
接口在Java中是独立存在的一种结构,和类相似我们需要创建一个接口文件,Java中用class关键字来标识类,用interface关键字来标识接口。
基本语法:
public interface 接口名{
public 返回值 方法名(参数列表);
}
创建接口实现类的基本语法:
public class 实现类名 implements 接口名(){
public 返回值 方法名 (参数列表){
}
}
应用:
下面我们就用电脑模拟一下电脑usb插口分别连接鼠标和U盘的例子
/**
* @author EA_emran
* usb接口
*/
public interface Usb {
/**
* 连接设备
*/
public void work();
}
/**
* @author EA_emran
* 鼠标实现类
*/
public class Mouse implements Usb{
@Override
public void work() {
System.out.println("鼠标已连接");
}
}
/**
* @author EA_emran
* U盘实现类
*/
public class UsbFlashDisk implements Usb{
@Override
public void work() {
System.out.println("U盘已连接");
}
}
/**
* @author EA_emran
* 电脑
*/
public class Computer {
private Usb usb;
public Usb getUsb() {
return usb;
}
public void setUsb(Usb usb) {
this.usb = usb;
}
public void work(){
System.out.println("开始连接");
this.usb.work();
}
}
测试连接鼠标
/**
* @author EA_emran
*/
public class TestMouse {
public static void main(String[] args) {
Usb usb = new Mouse();
Computer computer = new Computer();
computer.setUsb(usb);
computer.work();
}
}
运行结果
测试连接U盘
/**
* @author EA_emran
*/
public class TestU {
public static void main(String[] args) {
Usb usb = new UsbFlashDisk();
Computer computer = new Computer();
computer.setUsb(usb);
computer.work();
}
}
运行结果