6.6 Java8 改进的接口
接口(interface)
可以说是一种纯粹的“抽象类”,即所有方法都是抽象方法。(但在Java8中进行了改进,允许在接口中定义默认方法、类方法,必须有方法体。默认方法必须加default,类方法必须加static,什么都不加的是public abstract)
接口是从多个相似类中抽象出来的规范。是一种规范和实现分离的设计,是一种松耦合的设计。
Java8中接口的定义
[public] interface 接口名 extends 父接口1, 父接口2... { 零到多个常量定义... 零到多个抽象方法定义... 零到多个内部类、接口、枚举定义... 零到多个默认方法、类方法定义... }
说明:
修饰符是public或省略,省略是采用包权限访问控制符,只有在相同包下才可以访问
接口中不能包含构造器和初始化块,可以包含成员变量(只能是静态常量)、方法(只能是抽象实例方法、类方法、默认方法)、内部类(内部接口、枚举)。
例子:
package hello; public interface Output { // 接口里定义的成员变量,系统自动加上 public static final 修饰 int MAX_CACHE_LINE = 50;//相当于 public static final int MAX_CACHE_LINE = 50; // 抽象方法, 系统自动会加上 public abstract void out(); void getData(String msg); // 默认方法, 必须手动加上 default,并且必须有方法体 default void print(String... msgs){ for(String s: msgs){ System.out.println(s); } } default void test(){ System.out.println("默认的test()方法"); } // 类方法,必须手动加上 static ,并且必须有方法体 static String staticTest(){ return "接口中的类方法"; } }
常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2019-09-15 遍历某路径下的所有文件