当前位置: 首页 > news >正文

Java 笔记 interface

以下是使用 interface 时的一些注意事项最佳实践

✅ 1. Java 8+ 中接口可以有 defaultstatic 方法

  • default 方法:可以在接口中提供默认实现。

  • static 方法:可以直接通过接口名调用,不能被实现类继承。

interface MyInterface {default void log() {System.out.println("Default log");}static void util() {System.out.println("Utility method");}
}

⚠️ 注意:

  • default 方法在多继承时可能会引起冲突(需要在实现类中显式重写)。

✅ 2. 一个类可以实现多个接口(多重继承接口)

这是接口的强大之处。Java 不支持类的多继承,但支持接口多继承。

interface A {void methodA();
}interface B {void methodB();
}class C implements A, B {public void methodA() { }public void methodB() { }
}

✅ 3. 接口可以继承其他接口

  • 接口之间可以多重继承。

  • 实现该接口的类必须实现所有祖先接口的方法,除非是 default 方法。

interface A {void methodA();
}interface B extends A {void methodB();
}

✅ 4. Java 9+ 中接口允许 private 方法

  • 用于复用 defaultstatic 方法中的公共逻辑。

interface MyInterface {private void common() {System.out.println("Shared logic");}default void a() {common();}default void b() {common();}
}

错误做法原因说明
在接口中堆砌一堆常量接口职责变得模糊,违背接口隔离原则
一个类实现多个无关的接口可读性差、设计混乱
滥用 default 方法(实现逻辑复杂)接口不应承担太多实现逻辑,职责不清晰
用接口做工具类(如 interface Utils)接口不是工具类,建议用 final class + static

写小说也写代码,左手架空世界,右手现实逻辑。  
📚 欢迎来看博客,起点同笔名在写小说,欢迎来找我玩。

https://my.qidian.com/author/433910170/

http://www.dtcms.com/a/298713.html

相关文章:

  • C#入门实战:数字计算与条件判断
  • Web攻防-业务逻辑篇密码找回重定向目标响应包检验流程跳过回显泄露验证枚举
  • 【PyTorch】图像多分类项目
  • 一些常见的网络攻击方式
  • CY5-OVA科研方向,星戈瑞荧光
  • Pytest tmp_path 实战指南:测试中的临时目录管理
  • C语言————原码 补码 反码 (日渐清晰版)
  • MinIO 安装指南 - Linux ARM64
  • Linux网络管理与IP配置实验指南
  • MySQL 中的“双路排序”与“单路排序”:原理、判别与实战调优
  • 面向对象编程实战:Python打造你的数码宠物世界
  • 【速成速通】嵌入式软硬件学习路径:从 0 到实战的知识图谱
  • IPv6实战指南:从接入到应用
  • 《C++ vector 完全指南:vector的模拟实现》
  • Python应用append()方法向列表末尾添加元素
  • 基于Java的健身房管理系统
  • 比特币技术简史 第九章:比特币的未来 - 发展趋势、挑战和机遇
  • 零基础-动手学深度学习-6.1 从全连接层到卷积
  • 使用IP扫描工具排查网络问题
  • 上海AI Lab长时序感知具身导航!StreamVLN:基于慢快上下文建模的流式视觉语言导航
  • 与 TRON (波场) 区块链进行交互的命令行工具 (CLI): tstroncli
  • 为什么会有 CompletableFuture?它是为了解决什么痛点的?
  • Pandas 处理缺失数据
  • 为 GitHub Pages 站点配置自定义域(Windows)(Linked Page)
  • Android Ntp系统校时流程
  • C#(基本语法)
  • 人工智能冗余:大语言模型为何有时表现不佳(以及我们能做些什么)
  • 推荐系统多目标排序模型以及融合策略
  • WebSocket详解
  • ClickHouse 高性能实时分析数据库-物化视图篇