千家信息网

如何理解Java8接口中的默认方法和静态方法

发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,本篇内容介绍了"如何理解Java8接口中的默认方法和静态方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2025年11月16日如何理解Java8接口中的默认方法和静态方法

本篇内容介绍了"如何理解Java8接口中的默认方法和静态方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1.接口中的默认方法和静态方法

Java 8中允许接口中包含具有具体实现的方法,该方法称为 "默认方法" ,默认方法使用 default 关键字修饰。

接口默认方法的 " 类优先 " 原则。若一个接口中定义了一个默认方法,而另外一个父类或接口中又定义了一个同名的方法时

  • 选择父类中的方法。如果一个父类提供了具体的实现,那么接口中具有相同名称和参数的默认方法会被忽略。

  • 接口冲突。如果一个父接口提供一个默认方法,而另一个接口也提供了一个具有相同名称和参数列表的方法(不管方法是否是默认方法),那么必须覆盖该方法来解决冲突。

同时,Java8 中,允许接口中添加静态方法(static)。

2.应用举例

package com.szh.java8; /** * */interface InterfaceOne {     default String getMessage() {        return "哈哈哈";    }     static void show() {        System.out.println("接口中的静态方法");    }} interface InterfaceTwo {    default String getMessage() {        return "嘿嘿嘿";    }} class ClassOne {    public String getMessage() {        return "呵呵呵";    }} class SubClass1 extends ClassOne implements InterfaceOne { } class SubClass2 extends ClassOne implements InterfaceOne,InterfaceTwo { } class SubClass3 implements InterfaceOne,InterfaceTwo {     @Override    public String getMessage() {        return InterfaceTwo.super.getMessage();    } } public class TestClass {     public static void main(String[] args) {        SubClass1 sub1 = new SubClass1();        System.out.println(sub1.getMessage());         SubClass2 sub2 = new SubClass2();        System.out.println(sub2.getMessage());         SubClass3 sub3 = new SubClass3();        System.out.println(sub3.getMessage());         InterfaceOne.show();    }}

虽然SubClass1类继承了ClassOne、同时实现了InterfaceOne,由于类优先原则,所以这里执行的是ClassOne类中的getMessage方法。

SubClass2与SubClass1是同样的道理。

而SubClass3就不一样了,它没有继承ClassOne这个类,而是同时实现了InterfaceOne、InterfaceTwo这两个接口,那么它就必须选择其中一个来对默认方法进行实现(覆盖 / 重写),实现的是哪个接口,相应的就执行哪个接口的默认方法。

最后接口中的静态方法就和类中的静态方法一样,直接 接口名.静态方法名 就可以调用了。

"如何理解Java8接口中的默认方法和静态方法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

方法 接口 静态 同时 相同 内容 原则 参数 名称 更多 知识 冲突 选择 实用 学有所成 接下来 两个 关键 关键字 困境 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 高校实验室软件开发工程师 西安盈冠互联网科技有限公司 11月2日网络安全法 查询数据库数据插入时间 软件开发与应用好就业吗 ipad可以做软件开发吗 漯河市华耀网络技术有限公司 北京手机软件开发公司哪家好 大学生网络安全团会总结 河北应用软件开发哪家好 怎样知道局域网服务器的电脑名 嘉定区通保三级通信网络安全防护 scala脚本数据库操作 2019 全国网络安全周 传统服务器模式 中国海关数据库贸易方式代码 linux 域名 服务器 南阳手机软件开发多少钱 怎么重设服务器时间 学软件开发买苹果电脑 solr是非关系数据库吗 河南网络安全知识竞赛答案 服务器上门回收多少钱 线上教育机构软件开发 坐电脑服务器附近会影响生育吗 法本信息网络安全概念 网络安全调查问卷报告 刷脸软件开发需要的人 身份认证是属于网络安全的什么 网络安全专家考试
0