接口可以实例化吗(接口为什么不能被实例化)
Java 17 中的接口定义和实现
思维导图
本次主要来说说前三个选项。
在 Java 中接口可以理解为是一个抽象类型, 并且是抽象方法的集合。对于接口来说只有方法的抽象而没有具体的行为实现, 所以这些方法可以由不同的类实现, 而在这些不同的实现中具备了不同的行为。
在接口中使用关键字 interface 描述。
接口的具体使用一定和类有关系, 类可以实现(implement) 一个或多个接口。
对于 Java 中的接口而言, 从 Java 8 又新增了很多特性, 比方说默认方法, 类方法。
接下来我们来学习接口的基础用法。
接口的定义格式:
[修饰符] interface 接口名称 [extends] [interface1][,][interface2] { // 0 - n [修饰符] [static] [fianl] 类型 类型实例 = 类型实例值; // 0 - n [修饰符] [abstract] 方法返回类型 方法名(方法参数);}
在 Java 编程语言中, 接口是一种引用类型,类似于类, 只能包含常量、方法定义(或叫方法签名)、缺省方法、静态方法和嵌套类型。方法主题仅存在于默认方法和静态方法中。对于接口来说不能进行实例化操作的。它们只能由类实现或者其他接口的扩展使用。
对于现实中的接口就很多了。 比方说 USB 接口,显卡接口, 充电接口, 都是有对应的标准。接口的好处是提供了公共的行为, USB 接口就是提供了对应的传输机制, 大家的接口都一致, 这样你配 USB 键盘和鼠标, 只需要知道是 USB 接口就好了, 不需要知道什么规格的, 要不然 A 厂家定义了 小 USB接口, B 厂家又定义了中 USB 接口, 每次换主机都要换配置, 这个就太垄断了。 除非是有新的协议。 比方说有 USB2.0 和 USB3.0 这个是接口的内部的升级, 但是规格大小并没有变化, 只是 USB 3.0 多数情况下使用蓝色的插槽标识。最新的 USB 4 。但是接口的规格从没有改变。
这就是我们常说的, 一流厂家定标准, 二流厂家定接口, 三流厂家出框架。
举个例子: USB接口定义了一种技术规范。 可以输入出口数据。
既然是接口就需要先连接, 我们插入 USB 都会有个适配的过程。 然后适配完成就可以工作了。
创建 文件 Usb.java 代码如下:
public interface Usb { boolean connect(); void run(); }
现在有一个键盘厂商想要使用 USB 接口。 就需要实现该接口。
使用 implements 接口名称来使用接口。
测试是否能够跑起来:
可以看到键盘已经工作。 当又有一个鼠标的厂商想实现该接口, 方法也是一样的。
public class Mouse implements Usb { @Override public boolean connect() { System.out.println("鼠标连接成功。"); return true; } @Override public void run() { if(connect()){ System.out.println("鼠标开始工作了。"); } } }
修改测试代码, 加入如下代码:
usb = new Mouse();usb.run();
如果这个时候是一个音响, 或者是摄像头, 以及麦克风, 都可以根据 USB 的指定协议。 都可以实现 Usb 的这个接口, 来达到不同的实现, 处理不同的接口。
instanceof
对于接口的实现是否输入某个接口, 可以使用 instanceof 判断。 重新编写 Test.java 的代码, 运行查看其使用方法。
本小节, 就暂时说这么多, 使用 interface 定义一个接口, 使用 implements 实现一个接口。
接下来说说接口的继承。
关注, 点赞, 收藏。 苗子说全栈跟你一起学 Java 17。
有问题评论留言哦!
如发现本站有涉嫌抄袭侵权/违法违规等内容,请<举报!一经查实,本站将立刻删除。