Java 接口的三种类型方法

2023-05-16

接口中的方法分别有以下三种:

1、普通方法:使用default修饰的接口方法,可以拥有方法体,实现类不需要重写,可以被实现类继承,该特性是Java8以后被提出;
2、静态方法:接口中的静态方法和普通类中的一样,是拥有方法体的,静态方法不需要实例化,而接口本身就不支持实例化,从这点来看,静态方法和接口在一起似乎很配;
3、抽象方法:这个不需要解释。

例子:

接口ABC中有三个方法,分别是普通方法A()、静态方法B()和抽象方法C()。

public interface ABC{
    default String A(){ return "Hello A!"; }
    static String B(){ return "Hello B!"; }
    String C();
}

实现类中分别给出了方法A()、B()和C()的调用形式:

1、普通方法:实现类对象.普通方法A();
2、静态方法:接口名.接口静态方法B();
3、抽象方法:实现类对象.抽象方法C()。

public class ABCImpl implements ABC{
    @Override
    public String C(){ return "Hello C!"; }

    public static void main(String args){
        ABCImpl abc =new ABCImpl();
        
        System.out.printin(abc.A());
        System.out.printin(ABC.B());
        System.out.printin(abc.C());
    }
}

输出:

Hello A!
Hello B!
Hello C!

Process finished with exit code 0

另外,接口ABC中default修饰的方法可以被其他接口再继承,其他接口的实现类通过实例也可以使用接口ABC中的default修饰方法。

接口ABCInter继承接口ABC:

public interface ABCInter extends ABC{

}

类ABCInterlmpl实现接口ABCInter:

public class ABCInterlmpl implements ABCInter{
    @Override
    public String C(){ return null; }

    public static void main(Stringlargs){
        ABCInterlmpl abcInter = new ABCInterlmpl();
        System.out.printin(abcinter.A());
    }
}

结果:

Hello A!

Process finished with exit code 0

注意:接口中的方法不论哪种类型其默认修饰符都为public,可写可不写。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 接口的三种类型方法 的相关文章

  • Spring部署期间依赖注入问题

    我正在启动一个 Primefaces Spring Hibernate 项目 并且仍在学习如何正确处理这些组件 但就在此时 我面临着一个与 spring 依赖注入相关的问题 这让我很害怕 我已经在网上寻找答案两天了 但找不到我的代码有什么问
  • Java 中的递归回溯解决填字游戏

    我需要在给定初始网格和单词的情况下解决填字游戏 单词可以多次使用或根本不使用 初始网格如下所示 这是一个单词列表示例 pain nice pal id 任务是填充占位符 水平或垂直长度 gt 1 像那样 p pain pal id i c
  • 生成固定长度的随机数组[重复]

    这个问题在这里已经有答案了 我只是想更改我的代码 以便每次运行代码时都会生成固定长度 100 个整数的随机数组 而不仅仅是在代码中包含一个预先设置的数组 我对此很陌生 所以只需要正确方向的指导 谢谢 public class Selecti
  • 添加样式后如何重置回默认CSS?

    基本上 我通过添加如下样式类来更改 javafx 中文本字段的 css textfield getStyleClass add textfieldstyle 但后来我希望能够将其恢复到原来的样子 但由于本例中的原始外观是 JavaFX 的默
  • “不能从静态上下文引用非静态方法”JPA Java

    我从这一行收到 无法从静态上下文引用非静态方法 错误 createStudent stu00001 new Date 631152000000 m WB new Type Name Bob Smith 如何正确组成 日期 我查看了 API
  • Spring Security“拒绝执行来自...的脚本”

    我正在 HTML 文件 thymeleaf 模板 中使用 Spring Security 和 Bootstrap 构建 Spring MVC 应用程序 Spring Security部分基于Spring Guide对于春季安全 http s
  • 没有 if 条件(动态查询)或乱码的Where子句中的PreparedStatement“为null”

    假设我有这样的查询 SELECT FROM CUSTOMERS WHERE CUSTOMER ID 使用PreparedStatement 我可以绑定变量 pstmt setString 1 custID 但是 我无法通过以下绑定获得正确的
  • TestNG 与 DataProvider 并行执行

    我有一个从数据提供者接收数据的测试 我希望此测试与数据提供者的不同值并行运行 我尝试了这样的方法 public class IndependentTest Test dataProvider dp1 threadPoolSize 3 inv
  • 如何抑制有关已弃用 api 的 javac 警告?

    当我编译时 javac 输出 Note Some input files use or override a deprecated API Note Recompile with Xlint deprecation for details
  • 从文件执行db语句

    我在我的应用程序中使用嵌入式 Apache derby 我有一个名为的 SQL 脚本创建的数据库 sql创建数据库中的所有表并用初始数据填充它 例如 SET SCHEMA APP CREATE TABLE study study id bi
  • 有人使用 Hibernate 使用 Elasticache 作为二级缓存吗?

    我发现一些线程说这是可行的 但没有找到具体的说明或配置信息 我也想从 Beanstalk 执行此操作 应用程序应该部署到 beanstalk 并使用将 hibernate 指向 elasticache 实例的配置 是的 我们能够使用二级缓存
  • JPA Criteria API 任意数量的联接/子查询

    我需要使用以下实体构建相交类型查询 为了清楚起见 减少了实体 Entity and other stuff public class Member Id private Long id private String name Entity
  • 如何将 HTML 转换为保留换行符的文本

    我如何将 HTML 转换为保留换行符的文本 由 br p div 等元素生成 可能使用NekoHTML http nekohtml sourceforge net 或任何足够好的 HTML 解析器 Example Hello br Worl
  • 使用 JSeperator - Java 时出现异常间隙

    我一直在开发 Swing GUI 并在添加后出现一些不寻常和不需要的间隙JSeperator 知道如何删除它们吗 或者任何其他选择来很好地实现这一目标 视觉描述 之前差距就很明显了JLabel 速度 及之后JSlider 相关代码 cont
  • 强制预先加载原本延迟加载的属性

    我有一个 Hibernate 对象 它的属性都是惰性加载的 大多数这些属性是其他 Hibernate 对象或 PersistentSet 现在我想强制 Hibernate 一次性加载这些属性 当然 我可以 触摸 这些属性中的每一个objec
  • FileNotFoundException(系统找不到指定的路径)

    我得到这个例外 java io FileNotFoundException C filename xml The system cannot find the path specified 使用此代码 FileWriter fileWrit
  • 如何在 Java 中以编程方式获取接口的所有实现的列表?

    我可以通过反思或类似的方式来做到这一点吗 我已经搜索了一段时间 似乎有不同的方法 这里总结一下 反思 https github com ronmamo reflections如果您不介意添加依赖项 该库非常受欢迎 它看起来像这样 Refle
  • GWT 和身份验证

    保护 GWT Tomcat 应用程序执行身份验证和授权的最佳策略是什么 有两种基本策略 确保入口点安全 确保远程服务的安全 确保入口点安全 最简单的方法是使用常规 Web 应用程序安全工具限制对 GWT 生成的 html js 文件的访问
  • 如何使用 GWT 2.4 在服务器端动态创建 UI

    我正在尝试使用 Google Web Toolkit v2 4 创建用户界面 由于多种原因 我需要在运行时指定服务器上接口的内容 我的意思不仅仅是按钮需要动态标签等 而是整个 UI 需要在运行时创建 我的大部分 UI 都可以指定为直接的 H
  • 像 Java 一样覆盖 Objective-C 类中的方法

    我经常使用此语句来扩展类 而不需要编写整个单独的文件 假设 ClassFromFramework 是库中包含的框架的一部分的类 public ClassFromFramework public String myMethod operati

随机推荐

  • 经典力学(动力学)——刚体的转动

    目录 刚体的定轴转动 力矩刚体刚体转动的角速度和角加速度匀变速转动公式角量与线量的关系力矩 转动惯量 转动定律质点的转动惯量 角动量 角动量守恒定律角动量刚体定轴转动的角动量 力矩做功 刚体定轴转动的动能定理力矩做功刚体绕定轴转动的动能定理
  • 转动惯量到底是个什么物理量

    转动惯量 xff0c 对于大多数人可能都很难理解 xff0c 这个问题也困惑博主很久 xff0c 最近本人需要用到建模知识 xff0c 在回顾大学物理时重新学习了什么是转动惯量 xff0c 同时也是参考了几篇博文和知乎文章才基本理解 本人秉
  • ubuntu常见问题及解决方案——yr 不在 sudoers 文件中,此事将被报告,同时,su无法验证的解决办法

    昨晚因为改编译错误 xff0c 修改了sudoers里的内容 xff0c 导致 xff08 1 xff09 用户名 不在sudoers文件中 xff0c 同时 xff0c xff08 2 xff09 su无法验证的解决办法 对于问题 1 网
  • ROS1——ROS自定义消息格式配置相关

    在使用ROS时 xff0c 其自带的消息格式已经使开发人员很方便 xff0c 但是仍然避免不了会有一些特别的消息需要自己去定义 xff0c 此时 xff0c 就需要了解ROS中如何编写配置自定义消息格式 1 新建filename msg文件
  • 百度Apollo规划算法——轨迹拼接

    百度Apollo规划算法 轨迹拼接 引言轨迹拼接1 什么是轨迹拼接 xff1f 2 为什么要进行轨迹拼接 xff1f 3 结合Apollo代码为例理解轨迹拼接的细节 参考 引言 在apollo的规划算法中 xff0c 在每一帧规划开始时会调
  • Ubuntu16.0 ——安装串口驱动

    Ubuntu16 0 安装串口驱动 步骤一 在终端输入sudo apt get install minicom安装串口驱动 步骤二 在终端输入sudo minicom s打开串口配置窗口如下图 使用方向键 选择 Serial port se
  • 串口通信

    1 什么是串口通信 xff1f 串口通信 xff08 Serial CommunicaTIon xff09 xff0c 是指外设和计算机间 xff0c 通过数据信号线 地线等 xff0c 按位进行传输数据的一种通讯方式 串口是一种接口标准
  • Linux 网络开发必学课程(七)UDP 数据收发实战、深入UDP 数据收发

    15 UDP 数据收发实战 再论 UDP 协议 UDP 是无连接的 不可靠的 xff0c 无应答消息 xff0c 数据包无序号标识 UDP 是面向数据包的 xff0c 对应用层数据既不合并也不拆分 xff08 保留数据包边界 xff0c 不
  • Java 删除非空文件夹

    Java中的File delete 方法只能删除文件或者空文件夹 xff0c 无法删除非空文件夹 xff0c 当是非空文件夹时 xff0c 方法返回false xff0c 下面写一个工具类 xff0c 采用递归方式 xff0c 实现删除非空
  • 在Jetson Nano上实现单目相机 apritag_ros识别

    一 xff0c apritag ros安装 最开始采用克隆源码编译的方式进行安装 xff0c 后来在Jetson nano上有opencv4与opencv3的依赖问题 xff0c 后来索性直接采用二进制安装 xff1a sudo apt g
  • rosserial arduino的安装及使用(ROS控制arduino,arduino创建ROS结点)

    一 xff0c 简介 这个教程展示如何安装arduino IDE和使用rosserial Arduino和Arduino IDE是进行硬件开发的非常好的辅助工具 rosserial arduino包可让ROS和ArduinoIDE一起工作
  • ROS多机通讯踩坑,(主机和从机之间可以订阅话题,但是看不到话题消息)

    在进行ROS分布式通讯的时候 xff0c 已经设置好HOST 而且指定master地址 在树莓派上能够使用rostopic list 查看话题列表 xff0c 但是 xff0c 监听话题时rostopic echo chatter没有内容
  • 基于Microhard P900无人机PIX飞控远距离数传解决方案

    基于Microhard P900无人机PIX飞控远距离数传解决方案 参考文章 xff1a xff08 1 xff09 基于Microhard P900无人机PIX飞控远距离数传解决方案 xff08 2 xff09 https www cnb
  • 串口服务器的作用和工作原理是什么

    要了解串口服务器的作用以及工作原理 xff0c 首先我们就要知道什么是串口服务器 xff0c 简单来说串口服务器就是一种网络通讯接口转换设备 xff0c 它可以将我们一些常见的RS232 RS485 RS422串口转换成TCP IP网络接口
  • C++ 程序编译过程

    C 43 43 程序编译过程 面试高频指数 xff1a 编译过程分为四个过程 xff1a 编译 xff08 编译预处理 编译 优化 xff09 xff0c 汇编 xff0c 链接 编译预处理 xff1a 处理以 开头的指令 xff1b 编译
  • 当源文件与头文件不在同一个目录下的Makefile的编写

    Makefile的作用 xff1a 告诉make命令怎样去编译和链接程序 1 程序的编译与链接 xff1a 编译 xff1a 就是把源文件编译成中间代码 xff0c 为 obj文件 链接 xff1a 把多个 obj文件链接在一块然后执行 主
  • Intel Realsense D435i相关资料

    本文转载自 https www chiphell com thread 1945054 1 1 html xff0c 文末有相关资料可下载查看 https www chiphell com thread 1945054 1 1 html 拿
  • 数据库防火墙&数据库加密与脱敏&数据泄露防护

    写在最前 xff1a 安全产品系列目录 xff1a 目录 amp 总述 数据库防火墙 解决数据库应用侧和运维侧两方面的问题 xff0c 是一款基于数据库协议分析与控制技术的数据库安全防护系统 主动防御 xff0c 实现数据库的访问行为控制
  • Qt里面的函数操作逻辑总结笔记

    Qt里面的函数操作逻辑总结 笔记笔记随时更改 1 xff0c 头文件 h 2 xff0c 源文件 cpp FB 61 函数 xff0c codesys和其他叫法有多不同 qt是c 43 43 的跨平台ui界面编程软件 xff0c 所以他的源
  • Java 接口的三种类型方法

    接口中的方法分别有以下三种 xff1a 1 普通方法 xff1a 使用default修饰的接口方法 xff0c 可以拥有方法体 xff0c 实现类不需要重写 xff0c 可以被实现类继承 xff0c 该特性是Java8以后被提出 xff1b