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

【Java笔记】第10章:接口

  • 前言
  • 1. 接口的概念与定义
  • 2. 接口的声明与语法
  • 3. 接口的实现
  • 4. 接口的继承
  • 5. 接口的默认方法
  • 6. 接口的静态方法
  • 7. 接口的私有方法
  • 8. 接口的作用
  • 9. 接口与抽象类的区别
  • 10. 接口在Java集合中的应用
  • 结语

在这里插入图片描述
在这里插入图片描述

上期回顾:【Java笔记】第9章:三个修饰符
个人主页:C_GUIQU
归属专栏:【Java学习】

在这里插入图片描述

前言

各位小伙伴大家好!上期小编给大家讲解了Java中的三个修饰符,接下来讲讲Java中的接口!

1. 接口的概念与定义

Java接口(Interface)是一种引用类型,类似于类,用于存放抽象方法和静态常量。接口定义了一个规范,规定了实现接口的类应具备哪些方法。接口不能被实例化,但可以被实现(implements)或继承(extends)。

2. 接口的声明与语法

接口的声明以关键字interface开始,后面跟着接口的名称。接口中可以定义抽象方法和静态常量。

接口的语法如下:

public interface InterfaceName {// 静态常量int SOME_CONSTANT = 10;// 抽象方法void abstractMethod();
}

3. 接口的实现

一个类通过implements关键字来实现接口。实现接口的类必须实现接口中所有的抽象方法,否则该类必须声明为抽象类。一个类可以实现多个接口。

public class MyClass implements InterfaceName {// 实现接口中的抽象方法public void abstractMethod() {System.out.println("实现接口的抽象方法");}
}

4. 接口的继承

接口可以通过extends关键字继承另一个接口。一个接口可以继承多个接口,相当于扩展了接口的方法和常量。

public interface NewInterface extends InterfaceName {// 新的抽象方法void newAbstractMethod();
}

5. 接口的默认方法

Java 8引入了默认方法(default method),允许接口提供方法的实现。默认方法是非抽象的,可以有方法体。实现类可以选择性地覆盖默认方法。

public interface InterfaceName {// 默认方法default void defaultMethod() {System.out.println("这是默认方法");}
}

6. 接口的静态方法

Java 8也允许接口定义静态方法(static method)。静态方法不能被实现类覆盖,只能通过接口名调用。

public interface InterfaceName {// 静态方法static void staticMethod() {System.out.println("这是静态方法");}
}

7. 接口的私有方法

Java 9引入了私有方法(private method),允许接口内部定义私有方法。私有方法可以是静态的或非静态的,用于辅助实现接口的默认方法。

public interface InterfaceName {// 私有方法private void privateMethod() {System.out.println("这是私有方法");}// 调用私有方法的默认方法default void defaultMethod() {privateMethod();}
}

8. 接口的作用

接口在Java中主要用于实现多态、解耦和定义规范。通过接口,可以隐藏实现类的具体细节,只暴露必要的操作,提高代码的可维护性和扩展性。

9. 接口与抽象类的区别

  • 接口只能定义抽象方法和静态常量,而抽象类可以定义抽象方法和具体方法,可以有构造器,可以有成员变量。
  • 一个类可以实现多个接口,但只能继承一个抽象类。
  • 接口主要用于定义公共的方法规范,抽象类主要用于共享代码和实现。

10. 接口在Java集合中的应用

Java集合框架(Collection Framework)广泛使用接口。例如,ListSetMap都是接口,它们定义了集合操作的规范。具体的集合类如ArrayListHashSetHashMap实现了这些接口,提供了不同的集合操作实现。

结语

接口是Java语言中一个重要的概念,它提供了一种定义规范和实现多态的机制。通过接口,可以隐藏实现细节,提高代码的灵活性和可维护性。随着Java语言的发展,接口的功能也在不断增强,如默认方法、静态方法和私有方法的引入,使得接口更加灵活和强大。
至此,Java的接口讲解完毕。
感谢您的观看!互三必回!持续更新中~!

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/367437.html

相关文章:

  • Angular知识概览
  • 经典文献阅读之--Online Monocular Lane Mapping(使用Catmull-Rom样条曲线完成在线单目车道建图)
  • frida timed out
  • 51单片机-独立按键控制灯灯灯
  • 【C++】用红黑树封装map、set
  • 【中颖】SH79F9202 串口通信
  • IDEA创建Maven项目
  • [每周一更]-(第100期):介绍 goctl自动生成代码
  • 碳素钢化学成分分析 螺纹钢材质鉴定 钢材维氏硬度检测
  • C++ list链表的使用和简单模拟实现
  • dependencies?devDependencies?peerDependencies
  • 在LUAT中使用MQTT客户端,游戏脚本,办公脚本自动操作
  • 如何解决maven中snapshot相关jar无法拉取问题
  • 类似crossover的容器软件有哪些 除了crossover还有什么 Mac虚拟机替代品
  • 以sqlilabs靶场为例,讲解SQL注入攻击原理【54-65关】
  • 详解 Flink 的时间语义和 watermark
  • Unreal Engine项目结构与关卡设置详解
  • Access数据中的SQL偏移注入
  • Unity 编辑器扩展,获取目录下所有的预制件
  • 【Python】解决Python报错:ValueError: not enough values to unpack (expected 2, got 1)
  • 政安晨【零基础玩转各类开源AI项目】解析开源:gradio:改进真实虚拟试穿的扩散模型
  • 深入解读Prometheus Adapter:云原生监控的核心组件
  • 【计算机视觉】数字图像处理基础:以像素为单位的图像基本运算(点运算、代数运算、逻辑运算、几何运算、插值)
  • Spring Boot整合WebSocket和Redis实现直播间在线人数统计功能
  • uniapp自定义的下面导航
  • 【Python】selenium使用find_element时解决【StaleElementReferenceException】问题的方法
  • Apache IoTDB 分布式架构三部曲(三)副本与共识算法
  • 数据挖掘--聚类分析:基本概念和方法
  • APP单页分发源码下载安卓苹果自动识别apk描述文件免签自动安装
  • golang定时器使用示例