【JavaSE】Java基础语法(十九):接口新特性

文章目录

  • 1. 接口组成更新概述
  • 2. 接口中默认方法
  • 3. 接口中静态方法
  • 4. 接口中私有方法


在这里插入图片描述

1. 接口组成更新概述

常量:接口可以定义全局常量,使用关键字public static final修饰。

抽象方法:接口中可以定义抽象方法,使用关键字public abstract修饰。实现类必须实现接口的所有抽象方法。

默认方法(Java8):接口可以包含默认方法(default method),使用关键字default修饰。默认方法有默认的实现,实现类可以直接调用默认方法,也可以选择重写它。

静态方法(Java8):接口中还可以定义静态方法(static method),使用关键字public static修饰。静态方法只能被接口本身调用,并且不能被实现类重写或继承。

私有方法(Java9):可以有用私有方法。


2. 接口中默认方法

  • 格式
    public default 返回值类型 方法名(参数列表) { }

  • 作用
    解决接口升级的问题

  • 范例

public default void show3() {
}
  • 注意事项
    • 默认方法不是抽象方法,所以不强制被重写。但是可以被重写,重写的时候去掉default关键
    • public可以省略,default不能省略
    • 如果实现了多个接口,多个接口中存在相同的方法声明,子类就必须对该方法进行重写

3. 接口中静态方法

  • 格式
    public static 返回值类型 方法名(参数列表) { }

  • 范例

public static void show() {
}
  • 注意事项
    • 静态方法只能通过接口名调用,不能通过实现类名或者对象名调用
    • public可以省略,static不能省略

4. 接口中私有方法


私有方法产生原因

Java 9中新增了带方法体的私有方法,这其实在Java 8中就埋下了伏笔:Java 8允许在接口中定义
带方法体的默认方法和静态方法。这样可能就会引发一个问题:当两个默认方法或者静态方法中包
含一段相同的代码实现时,程序必然考虑将这段实现代码抽取成一个共性方法,而这个共性方法是
不需要让别人使用的,因此用私有给隐藏起来,这就是Java 9增加私有方法的必然性


定义格式
格式1

private 返回值类型 方法名(参数列表) { }

范例1

private void show() {
}

格式2

private static 返回值类型 方法名(参数列表) { }

范例2

private static void method() {
}

注意事项

默认方法可以调用私有的静态方法和非静态方法

静态方法只能调用私有的静态方法


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/23745.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

首发Yolov8优化:Adam该换了!斯坦福最新Sophia优化器,比Adam快2倍 | 2023.5月斯坦福最新成果

1.Sophia优化器介绍 斯坦福2023.5月发表的最新研究成果,他们提出了「一种叫Sophia的优化器,相比Adam,它在LLM上能够快2倍,可以大幅降低训练成本」。 论文:https://arxiv.org/pdf/2305.14342.pdf 本文介绍了一种新的模型预训练优化器:Sophia(Second-order Clippe…

<Linux开发>驱动开发 -之-基于pinctrl/gpio子系统的beep驱动

<Linux开发>驱动开发 -之-基于pinctrl/gpio子系统的beep驱动 交叉编译环境搭建: <Linux开发> linux开发工具-之-交叉编译环境搭建 uboot移植可参考以下: <Linux开发> -之-系统移植…

完整卸载office以及重装office 2021

完整卸载office以及重装 一.背景 之前很早安装的word最近发现打开,编辑等操作都很卡,而且占用的CPU很多,20%左右,而在网上搜索了一些结果无法解决问题后,决定卸载重装 二. 卸载的建议方法 直接参考官方链接从PC卸载…

Pytest自动化测试框架之Allure报告

简介 Allure Framework是一种灵活的、轻量级、多语言测试报告工具。 不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容, 而且还允许参与开发过程的每个人从日常执行中提取最大程度的有用信息和测试。 从开发/测试的角度来看: Allure报告可以…

弘基笔记本电脑怎么使用U盘重装系统?

弘基笔记本电脑怎么使用U盘重装系统?有的用户的弘基笔记本电脑使用过程中出现了蓝屏的情况,系统频繁的出现蓝屏问题导致自己的使用受到了影响,那么这个情况怎么去进行问题的解决呢?一起来看看以下的解决方法吧。 准备工作&#xf…

直接缓存访问DCA

直接缓存访问DCA:网卡原本DMA写是将接收到的数据帧写入系统内存,DCA机制是网卡DMA写输入的数据能直接发送到属于CPU内部的L2高速缓存中,从而提高网络IO的性能。 设备驱动程序要初始化网卡的DCA功能,将CPU ID号(通过获取…

Unity-vr用眼睛注视选择物体

Unity-vr用眼睛注视选择物体 文章目录 Unity-vr用眼睛注视选择物体工程版本用法说明脚本说明WatchController - 注视主控制器WatchEvent - 注视事件WatchGameobject - 被注视物体TimerTool - 计时器工具 总结 工程版本 unity2019.4.9f1 vs2019 项目工程源代码下载 用法说明 …

技术大佬们都是怎么学习的?

目录 问题 熟悉更多业务 熟悉端到端 自学 Do exercise Learning trying Teaching 问题 今天逛帖子的时候,看到这么个问题: 这个问题我曾经也很好奇过,那些成为技术大佬的人当初是怎么学习,以及怎么成长过来的&#xff0…

私有GitLab仓库 - 本地搭建GitLab私有代码仓库并随时远程访问「内网穿透」

文章目录 前言1. 下载Gitlab2. 安装Gitlab3. 启动Gitlab4. 安装cpolar内网穿透5. 创建隧道配置访问地址6. 固定GitLab访问地址6.1 保留二级子域名6.2 配置二级子域名 7. 测试访问二级子域名 转载自远控源码文章:Linux搭建GitLab私有仓库,并内网穿透实现公…

Makefile

Makefile 1.举一个Makefile的例子2.使用变量3.更省事的方式,让Make 自动推导.PHONY:clean是什么意思?! 4.cmake与Makefile的联系在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下: 1.举一个Makefile的例子 hello_demo : hellospea…

回收站中怎么找回误删除的文件?这几种方法很实用

当我们在电脑上操作文件的时候,难免会有不小心删除文件的情况发生。这个时候,我们可以打开回收站来找回误删除的文件。但是,有时候我们也会误将回收站清空。那么,该怎样才能找回已经误删除的文件呢?在这里提供了回收站…

chatgpt赋能python:用Python下载MP3的方法

用Python下载MP3的方法 如果你想从互联网上下载MP3,那么你可以使用Python来实现这个任务。在本文中,我们将介绍如何用Python编写程序来下载MP3,同时还将分享一些有用的工具和资源。 Python中使用的库 要下载MP3,你需要使用Pyth…

一篇文章搞定《Android事件分发》

一篇文章搞定《Android事件分发》 什么是事件分发MotionEvent事件事件如何从屏幕到APPInputManagerServiceWindowManagerServiceWindow小结 事件如何从APP到达对应页面第一步:分类第二步:送去Activity后续的传递小结: 页面的事件分发整个流程…

移动云COCA架构,重新定义下一代云

当前,算力已经成为 全球科技竞争的焦点 为此,移动云重磅发布 「移动云COCA(Compute on chip Architecture)软硬一体片上计算架构」 以下简称移动云COCA架构 以此打造国家级自主可控的 高性能算力底座 带动国产化智算产业成熟…

【ISO14229_UDS刷写】-5-$38诊断服务RequestFileTransfer理论部分

总目录:(单击下方链接皆可跳转至专栏总目录) 《UDS/OBD诊断需求编辑工具》总目录https://blog.csdn.net/qfmzhu/article/details/123697014 目录 1 $0x38 RequestFileTransfer诊断服务描述 2 0x38服务请求消息 2.1 0x38服务请求消息定义…

写给初学者的YOLO目标检测 概述

文章目录 什么是目标检测What is YOLO?为什么YOLO在目标检测领域如此流行?1. 速度快2. 高检测精度3. 更好的泛化性4. 开源 YOLO架构YOLO目标检测是如何工作的?残差块(Residual blocks)边界框回归(Bounding box regression)交并比…

基于ESP32-CAM 和 OpenCV 设计的手势控制虚拟鼠标

概述 在本文中,我们将使用ESP32-CAM和OpenCV开发手势控制虚拟鼠标。ESP32 Camera Module和Python程序可用于无线控制鼠标跟踪和点击操作。 入门者必须具备 Python、图像处理、嵌入式系统以及物联网的丰富知识。首先,我们将了解如何控制鼠标跟踪和单击,以及运行 python 程序…

20年前,微软给金山那刀,现今一举将WPS推上领奖台,WPS,赢了

WPS,赢了 正如姚冬(金山办公副总裁)所说: 文本的命令行到图形界面的那次,改变整个人机交互的方式,我们公司历史上最大的一次危机也是那一次, 但我们依然挺过来了,我们相信这次技术浪…

一个神奇的工具,让URL地址都变成了“ooooooooo“

一个神奇的工具,让URL地址都变成了"ooooooooo" 一、核心代码二、URL编码/解码 最近发现一个有意思工具,就是将一个URL地址转换为都是 ooooooooo 的样子,通过转换后的地址访问可以转换回到原始地址,转换的逻辑有点像短链…

linuxOPS基础_linux安装配置

Linux系统下载 Linux系统版本选择:CentOS7.6 x64,【镜像一般都是CentOS*.iso文件】 问题:为什么不选择最新版的8 版本? 7.x 目前依然是主流 7.x 的各种系统操作模式是基础 官网:https://www.centos.org/ ,…