【java8新特性】——默认方法(五)
方法 特性 默认 java8
2023-09-14 09:14:51 时间
一、简介
默认方法是指接口的默认方法,它是java8的新特性之一。顾名思义,默认方法就是接口提供一个默认实现,且不强制实现类去覆写的方法。默认方法用default关键字来修饰。
默认方法可以解决的痛点:
在java8之前,修改接口功能通常会给接口添加新的方法,这时对已经实现该接口的所有实现类,都要一一添加对新方法的实现,换言之,在给接口定义新方法的同时无法不影响到已有的实现类,这时,java8的默认方法特性就可以解决这种接口修改与已有实现类不兼容的问题,比如java8中Iterable接口添加的forEach方法就是一个默认方法:
default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
这样在java8中,可以对集合直接用forEach方法结合lambda表达式方便的实现集合的遍历计算。
二、默认方法的使用
2.1 实现多个接口有相同默认方法的解决
注意:当一个类实现多个接口时,若多个接口中存在相同默认方法(方法名、参数、返回值相同),此时实现类必须要覆写默认方法。
覆写有两种方式:
- 1、实现类自己实现方法逻辑
- 2、采用super关键字来调用指定接口的默认方法, 如:
public interface TestInterface1
{
default void test()
{
System.out.println("TestInterface1");
}
}
public interface TestInterface2
{
default void test()
{
System.out.println("TestInterface2");
}
}
public class Test implements TestInterface1, TestInterface2
{
@Override
public void test()
{
// 调用TestInterface1接口的默认test()方法
TestInterface1.super.test();
}
}
2.2 接口静态方法
java8支持接口中定义静态方法(需要提供默认实现),写法上将默认方法的default关键字换成static关键字即可。
三、总结
java8默认方法的使用还是比较简单的,且解决了java8之前给接口定义新方法的同时无法不影响到已有的实现类的痛点问题,比较实用。
相关文章
- 破解FTP登录密码的几种方法
- 阿里智勇大闯关通关方法
- EasyBoot使用方法
- 带有汉字的字符串截断出现半个“汉字”的解决方法-C语言源码
- python用户评论标签匹配的解决方法
- 四种方法校验数组中是否包含某个指定的字符串
- Java8新特性interface中的static方法和default方法
- vue-resourse简单使用方法
- Python3 数据结构:列表List中的方法
- System类的常用方法及类字段
- Java8新特性(一)_interface中的static方法和default方法
- Atitit 方法运行器methodRunnerV3 方法虚拟机 vm 新特性 java -cp C:0wkspcmethodRunnerbin -Djava.ext.dirs="
- 从零开始学_JavaScript_系列(22)——dojo(9)(表单、JsonRest的post方法,widget的使用思路)
- Dataset:GiveMeSomeCredit数据集的简介、下载、使用方法之详细攻略
- 计及光伏电站快速无功响应特性的分布式电源优化配置方法(Matlab代码实现)
- 计及碳捕集电厂低碳特性的含风电电力系统源–荷多时间尺度调度方法(Matlab代码实现)
- 考虑充电负荷空间可调度特性的分布式电源与电动汽车充电站联合配置方法(Matlab代码实现)
- WebRTC 教程三:WebRTC特性,调试方法以及相关服务器搭建方法
- Error parsing XML: not well-formed (invalid token) 报错+R文件消失解决的方法
- 【Java8新特性】接口中的默认方法和静态方法,你都掌握了吗?
- 009-jdk1.8版本新特性一-展方法,Lambda表达式,函数式接口、方法引用构造引用
- 【回答问题】ChatGPT上线了!给我推荐20个比较流行的知识蒸馏模型/方法/源码
- Python极简方法生成Zip文件
- Java学习笔记(六)——方法
- JVM系列-CPU使用率高问题排查方法
- 问题解决之-This system is not registered with RHN终极解决办法以及yum卸载后重装解决方法
- Java8新特性-----方法引用和构造器引用
- 【java8新特性】——方法引用(四)