接口是Java中的很重要的一个知识点,首先我们要初步了解从生活中了解“接口”的概念,什么是接口?
生活中比较常见的接口:
USB接口,国标插座,Type-C, 3.5MM, ARJ45, Lighting接口, HDMI, VGA, SATA, M.2, DisplayPort,雷电口, PCI-E
这些接口有什么作用? USB接口 USB-A 1. 鼠标连接,键盘连接,声卡连接,麦克风,摄像头,补光灯,U盘,移动硬盘 2. 规范,都是USB设备 3. 设备本身决定了,要做什么事情。
格式: interface 接口名 { 成员变量 成员方法 }
类【遵从】接口 implements class 类名 implements 接口 {}
接口中成员变量和成员方法缺省属性原因
从生活角度
USB接口规定了尺寸和连接方式,但是该接口做什么内容,是由设备决定的!!! 尺寸是固定 ==> 成员变量 缺省属性是public static final
设备做什么事情,不管但是规定连接方式 ==> 成员方法,需要设备自己完成 缺省属性 public abstract修饰
从生活中映射USB接口 interface USB
规定USB设备必须完成的方法 void connect();
鼠标类 implements USB 鼠标是一个USB设备,必须完成connect方法 键盘类 implements USB 键盘是一个USB设备,必须完成connect方法
USB接口在电脑上,我们需要使用USB接口
代码展示
/*
从生活中映射USB接口
interface USB
规定USB设备必须完成的方法
void connect();
鼠标类 implements USB
鼠标是一个USB设备,必须完成connect方法
键盘类 implements USB
键盘是一个USB设备,必须完成connect方法
*/
/**
* USB接口
* @author Anonymous
*
*/
interface USB {
/**
* 要求所有的USB设备,必须完成的方法,告知USB接口连接之后完成的
* 功能是什么
*/
void connect();
}
/**
* 鼠标类,遵从USB接口,实现connect方法
*
* @author Anonymous
*/
class Mouse implements USB {
@Override
public void connect() {
System.out.println("鼠标连接USB接口,控制光标");
}
}
/**
* Logi类,继承Mouse鼠标类
* 1. 鼠标设备
* 2. Logi间接遵从USB接口,是一个USB设备
* @author Anonymous
*
*/
class Logi extends Mouse {
@Override
public void connect() {
System.out.println("Logi Master 2S");
}
}
/**
* 键盘类,遵从USB接口,实现connect方法
*
* @author Anonymous
*/
class Keyboard implements USB {
@Override
public void connect() {
System.out.println("键盘连接USB接口,输入设备");
}
}
/**
* IKBC继承Keyboard类
* 1. 键盘设备
* 2. 间接遵从USB接口,也是一个USB设备
* @author Anonymous
*
*/
class IKBC extends Keyboard {
@Override
public void connect() {
System.out.println("IKBC C87 静音红轴");
}
}
/**
* PC电脑类,使用USB接口,这里需要通过USB接口连接一个USB设备
*
* @author Anonymous
*/
class PC {
/**
* 电脑类连接USB接口连接方法,这里需要的是一个USB设备
*
* @param usb USB接口对应的设备
*/
public void usbConnect(USB usb) {
// usb设备执行connect方法
usb.connect();
}
}
public class Demo1 {
public static void main(String[] args) {
// 电脑中有一个方法是使用USB接口连接USB设备
PC pc = new PC();
// 鼠标和键盘都是USB设备
Mouse mouse = new Mouse();
Keyboard keyboard = new Keyboard();
// 电脑需要通过USB接口连接USB设备,mouse鼠标就是USB设备
pc.usbConnect(mouse);
// keyboard键盘也是USB设备
pc.usbConnect(keyboard);
// 传入一个Logi类对象
pc.usbConnect(new Logi());
// 传入一个IKBC类对象
pc.usbConnect(new IKBC());
}
}