02-JDK新特性-接口新特性

接口新特性

接口组成更新概述

接口的组成

  • 常量
  public static final String ZERO = "0";
  • 抽象方法
  public abstract void dance();
  • 默认方法(JAVA8新增)
  public default void dance(){}
  • 静态方法(JAVA8新增)
  public static void dance(){}
  • 私有方法(JAVA9新增)
  private void dance(){}private static void dance(){}

注意事项:

JAVA8之后在接口中新增了默认方法、静态方法、私有方法(JAVA9)。

接口中允许有方法体的只有以上四种。其中public void dance(){} / protected void dance(){} 是不允许的

接口中默认方法

格式:

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

示例:

public default void eat(){}

注意事项:

默认方法不是抽象方法,所以不强制被重写,但可以被重写,重写的时候去掉default关键字

public可以省略,default不能省略

案例:

Eatable.java
package demo1;public interface Eatable {default void eat(){System.out.println("Eatable中eat方法被调用");}
}
EatImpl.java
package demo1;public class EatImpl implements Eatable {
}
InterfaceDemo1.java
package demo1;public class InterfaceDemo1 {public static void main(String[] args) {Eatable eatable = new EatImpl();eatable.eat();}
}

执行结果

在这里插入图片描述

接口中静态方法

格式:

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

示例:

public static void eat(){}

注意事项:

静态方法只能通过接口名称调用,不能通过实现类名或对象名调用

public可以省略,static不能省略

案例:

Eatable.java
package demo2;public interface Eatable {static void eat(){System.out.println("Eatable中静态的eat方法被调用");}
}
InterfaceDemo2.java
package demo2;public class InterfaceDemo2 {public static void main(String[] args) {Eatable.eat();}
}

执行结果

在这里插入图片描述

接口中私有方法

格式1:

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

格式2:

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

示例:

private void eat(){}
private static void eat2(){}

注意事项:

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

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

案例:

Eatable.java
package demo3;public interface Eatable {default void eat(){System.out.println("Eatable中的default方法被调用");eat1();eat2();}private void eat1(){System.out.println("Eatable中的private方法被调用");}private static void eat2(){System.out.println("Eatable中的静态private方法被调用");}
}
EatableImpl.java
package demo3;public class EatableImpl implements Eatable{
}
InterfaceDemo3.java
package demo3;public class InterfaceDemo3 {public static void main(String[] args) {Eatable eatable = new EatableImpl();eatable.eat();}
}

执行结果

在这里插入图片描述

gitee源码

git clone https://gitee.com/dchh/JavaStudyWorkSpaces.git

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leecode 331 |验证二叉树的前序序列化 | gdb 调试找bug

计算的本质是数据的计算 数据的计算需要采用格式化的存储, 规则的数据结果,可以快速的按照指定要求存储数据 这里就不得不说二叉树了,二叉树应用场景真的很多 本题讲的是,验证二叉树的前序序列化 换言之,不采用建立树的…

Logback日志框架常见配置

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl logback简介 Logback是一个高性能、功能强大的日志框架,专为Java应用程序设计。它由Log4j的创始人Ceki Glc创建,并被视为Log4j的继承者和改进版。Lo…

3D Web轻量化平台HOOPS Web Platform在大型水利工程中的应用和价值

随着科技的不断进步和互联网的普及,数字化技术在各个领域的应用日益广泛,大型水利工程也不例外。作为一种先进的3D Web轻量化引擎,HOOPS Web Platform在大型水利工程中扮演着重要的角色,为工程设计、施工管理、运行维护等方面提供…

Ubuntu部署BOA服务器

BOA服务器概述 BOA是一款非常小巧的Web服务器,源代码开放、性能优秀、支持CGI通用网关接口技术,特别适合用在嵌入式系统中。 BOA服务器主要功能是在互联嵌入式设备之间进行信息交互,达到通用网络对嵌入式设备进行监控,并将反馈信…

Go的数据结构与实现【Binary Search Tree】

介绍 本文用Go将实现二叉搜索树数据结构,以及常见的一些方法 二叉树 二叉树是一种递归数据结构,其中每个节点最多可以有两个子节点。 二叉树的一种常见类型是二叉搜索树,其中每个节点的值都大于或等于左子树中的节点值,并且小…

Unbtun-arach64架构安装PySide2(python3.6)

aarch平台是无法通过pip安装PySide2的,同时利用源码下载一直报错 1. 我是python3.6.9,在官网上找到对应的PySide2版本 5.15.2.所以首先在官网下载Qt5.15.2的源码:https://download.qt.io/archive/qt/5.15/5.15.2/single/ 2. 编译qt环境 aar…

Seata(分布式事务实例环境搭建)

文章目录 1.基本介绍1.引出Seata2.问题分析 2.Seata的安装和配置1.解压到d盘2.修改D:\seata\conf\file.conf文件1.修改事务组2.修改日志存储模式为db3.修改数据库(MySQL5.7)连接信息4.创建seata数据库5.复制db_store.sql的内容,创建需要的表6…

Web实例_报表开发01-基于HTML进行报表呈现

Web实例_报表开发01-基于HTML进行报表呈现 报表开发是一种在利用了软件的基础上, 针对不同类型的报表, 进行开放的工作。 而以报表的方式, 将相关的内容、数值呈现出来的话, 则会起到更好的概况作用。 再加上, 报表开发工作是依托于计算机来完成的, 因此在效率、完整性等方面…

红酒:分类视角下的红酒品质评估与标准制定

在红酒的世界中,品质的评估与标准的制定对于维护消费者权益、促进行业健康发展具有重要意义。云仓酒庄雷盛红酒作为业界持续发展品牌,从分类的视角出发,对红酒品质进行了多方的评估,并积极参与制定相关的标准。 首先,从…

优思学院|工程经理应如何利用PDCA循环?

作为工程经理,理解PDCA(计划-执行-检查-行动)质量管理循环程序对于确保项目质量和持续改进是十分重要。 PDCA 最早由美国质量管理专家 Walter A. Shewhart (1939)提出,其后被戴明博士(Dr. Deming)所采用、…

【Linux】权限理解

权限理解 1. shell命令以及运行原理2. Linux权限的概念3. Linux权限管理3.1 文件访问者的分类(人)3.2 文件类型和访问权限(事物属性)3.2.1 文件类型3.2.2 基本权限 3.3 文件权限值的表示方法3.4 文件访问权限的相关设置方法3.4.1 …

基于energy score的out-of-distribution数据检测,LeCun都说好 | NerulPS 2020

论文提出用于out-of-distributions输入检测的energy-based方案,通过非概率的energy score区分in-distribution数据和out-of-distribution数据。不同于softmax置信度,energy score能够对齐输入数据的密度,提升OOD检测的准确率,对算…

【JAVA】java基础(分支结构)洛谷刷题(含图解:吃苹果)

题目: 解析 代码 import java.util.Scanner;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubScanner input new Scanner(System.in);int apple,time,rate; appleinput.nextInt(); rateinput.nextInt(); timeinpu…

专题【链表】刷题日记

题目列表 学习题(22题) 2024.03.31 两数相加 19. 删除链表的倒数第 N 个结点 合并K个升序链表 2024.04.01 24. 两两交换链表中的节点 25. K 个一组翻转链表 61. 旋转链表 83. 删除排序链表中的重复元素 82. 删除排序链表中的重复元素 II 86. 分隔链表 92. 反转链表 II 1…

【STM32嵌入式系统设计与开发】——14PWM(pwm脉宽输入应用)

这里写目录标题 一、任务描述二、任务实施1、WWDG工程文件夹创建2、函数编辑(1)主函数编辑(2)USART1初始化函数(usart1_init())(3)USART数据发送函数( USART1_Send_Data(&#xff09…

服务器安全事件应急响应排查方法

针对服务器操作系统的安全事件也非常多的。攻击方式主要是弱口令攻击、远程溢出攻击及其他应用漏洞攻击等。分析安全事件,找到入侵源,修复漏洞,总结经验,避免再次出现安全事件,以下是参考网络上文章,总结的…

初识编译和链接(C语言)

文章目录 编译和链接翻译环境预处理编译汇编链接 运行环境 编译和链接 编译和链接这两个大的过程构成了翻译环境。 其实,在ANSI C的任何一种实现中,存在两个不同的环境。 一个环境是翻译环境,另一个是执行环境。 翻译环境中,源…

【软件工程】详细设计(一)

1. 引言 1.1 编写目的 该文档的目的是描述《学生成绩管理系统》项目的详细设计,其主要内容包括: 系统功能简介 系统详细设计简述 各个模块的实现逻辑 最小模块组件的伪代码 本文档的预期的读者是: 开发人员 项目管理人员 测试人员 …

基于单片机汽车超声波防盗系统设计

**单片机设计介绍,基于单片机汽车超声波防盗系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机汽车超声波防盗系统设计概要主要涉及利用超声波传感器和单片机技术来实现汽车的安全防盗功能。以下是对…

八股 -- C#

面向对象 (三大特性) 三大特性目的是为了提供更好的代码组织、可维护性、扩展性和重用性 C#基础——面向对象 - 知乎 (zhihu.com) 封装 理解: 你不需要了解这个方法里面写了什么代码,你只需要了解这个方法能够给你返回什么数据&…