前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java中的接口概略

java中的接口概略

作者头像
用户7073689
发布2020-03-18 15:12:40
5120
发布2020-03-18 15:12:40
举报
文章被收录于专栏:青柠小鱼青柠小鱼

接口是Java中的很重要的一个知识点,首先我们要初步了解从生活中了解“接口”的概念,什么是接口?

1. 生活中的接口

生活中比较常见的接口:

USB接口,国标插座,Type-C, 3.5MM, ARJ45, Lighting接口, HDMI, VGA, SATA, M.2, DisplayPort,雷电口, PCI-E

这些接口有什么作用? USB接口 USB-A 1. 鼠标连接,键盘连接,声卡连接,麦克风,摄像头,补光灯,U盘,移动硬盘 2. 规范,都是USB设备 3. 设备本身决定了,要做什么事情。

2. Java中接口使用

格式: interface 接口名 { 成员变量 成员方法 }

类【遵从】接口 implements class 类名 implements 接口 {}

接口中成员变量和成员方法缺省属性原因

从生活角度

USB接口规定了尺寸和连接方式,但是该接口做什么内容,是由设备决定的!!! 尺寸是固定 ==> 成员变量 缺省属性是public static final

设备做什么事情,不管但是规定连接方式 ==> 成员方法,需要设备自己完成 缺省属性 public abstract修饰

3. 接口使用总结

  1. 接口中的 成员变量缺省属性 public static final 成员方法缺省属性 public abstract
  2. 一个非abstract类遵从interface接口,需要强制完成接口中所有缺省属性为public abstract的成员方法
  3. 接口和接口之间,允许使用extends关键字继承,并且允许一个接口,继承多个接口 interface A extends B, C 生活中: 协议直接的向下兼容问题
  4. 接口中可以使用default关键字修饰方法,default方法拥有方法体,可以认为是非强制实现方法,不要求遵从接口的非abstract强制实现,JDK1.8新特征

4. 接口生活化演示

从生活中映射USB接口 interface USB

规定USB设备必须完成的方法 void connect();

鼠标类 implements USB 鼠标是一个USB设备,必须完成connect方法 键盘类 implements USB 键盘是一个USB设备,必须完成connect方法

USB接口在电脑上,我们需要使用USB接口

代码展示

代码语言:javascript
复制
/*
从生活中映射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());
	}
} 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 生活中的接口
  • 2. Java中接口使用
  • 3. 接口使用总结
  • 4. 接口生活化演示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档