如何理解Java8接口中的默认方法和静态方法
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,本篇内容介绍了"如何理解Java8接口中的默认方法和静态方法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2025年02月08日如何理解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安全错误
数据库的锁怎样保障安全
垫江手机软件开发
巨额来电网络安全情景剧
福建福州科技互联网公司
水电站的测点如何存入数据库
app后台用什么服务器架构
想学网络技术去哪里学
沈阳聚博网络技术
数据库镜像技术的缺点
数据库管理技术试题
图书借阅的数据库是什么
网络技术应用集体备课教案
软件开发毕业论文设计说明
裕邦软件开发公司怎么样
软件开发资金分析
中配服务器配置
电磁仿真软件开发
刀剑无双通过数据库修改充值
奉贤区综合软件开发销售方法
台湾宏达网络安全工程师
软件开发定制好评
微秒服务器al23
江苏明天互联网大健康科技
ef id查询数据库
兰州软件开发待遇怎么样
暗黑2服务器架设一直在排队
网络安全工程师实习生
最新软件开发增值税
4串口服务器
数据库导航窗体页面怎么变动
服务器的文件夹始终用于脱机文件