java接口中的default(默认)使用方式

 更新时间:2025年03月24日 08:40:27   作者:码灵  
这篇文章主要介绍了java接口中的default(默认)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

java接口的default(默认)使用

定义

Java的接口中有一种特殊的方法,叫做默认方法。

接口中的默认方法有以下特点:

  • default方法可以有方法体。
  • 接口中的普通方法必须被实现类重写;默认方法可以不被实现类重写。

作用

这个特点在实践中的具体作用是:

  • 当我们进行业务扩展时,需要在接口中新增方法。
  • 如果新增的这个方法写成普通方法的话,那么需要在该接口所有的实现类中都重写这个方法。
  • 如果新增的方法定义为default类型,就不需要在所有的实现类中全部重写该default方法,哪个实现类需要新增该方法,就在哪个实现类中进行实现。

但是,需要注意在什么情况下,default的使用会受限

  • 如果一个实现类只实现了一个接口,那么可以不用重写接口中的默认方法。
  • 如果一个实现类实现了多个接口,并且这些接口中有两个接口的默认方法是一样的,那么就必须在实现类中重写默认方法。

默认方法可以通过接口的实现对象直接调用,可以被接口的实现类重写。

interface test{
       default public void print() {
              System.out.println("This is a interface with default");
       }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在Java8中构建Stream流的多种方式详解

    在Java8中构建Stream流的多种方式详解

    当我们处理集合数据时,往往需要对其进行各种操作,如过滤、映射、排序、归约等,在 Java 8 中引入的 Stream 流为我们提供了一种更加简洁和灵活的方式来处理数据,本文将介绍如何基于 Stream 构建流,为你展示创建和操作流的多种方法
    2023-08-08
  • 解决kafka消息堆积及分区不均匀的问题

    解决kafka消息堆积及分区不均匀的问题

    这篇文章主要介绍了解决kafka消息堆积及分区不均匀的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • PowerMockito的基本使用解析

    PowerMockito的基本使用解析

    这篇文章主要介绍了PowerMockito的基本使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • mybatisPlus使用LocalDateTime转化异常的实现

    mybatisPlus使用LocalDateTime转化异常的实现

    本文主要介绍了mybatisPlus使用LocalDateTime转化异常的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • MyBatis源码浅析(一)开篇

    MyBatis源码浅析(一)开篇

    源码的学习好处多多,Mybatis源码量少、逻辑简单。下面将通过本文给大家详解,低mybatis源码浅析感兴趣的朋友一起看看吧
    2016-11-11
  • MyBatis-Plus从基础CRUD到高级查询与性能优化实战指南

    MyBatis-Plus从基础CRUD到高级查询与性能优化实战指南

    MyBatis-Plus 与 Spring Boot 的集成非常简洁,只需完成 Maven 依赖引入和基础配置,即可快速启用所有核心功能,本文将从环境搭建到性能优化,系统化讲解MyBatis-Plus的实战用法,助力开发者快速上手并灵活运用,感兴趣的朋友跟随小编一起看看吧
    2026-02-02
  • springboot如何开启和关闭kafka消费

    springboot如何开启和关闭kafka消费

    在Kafka消费者中,通过关闭自动消费配置,使用自定义容器工厂,并在消费监听器上设置id,可以手动控制消费的开启和关闭,这是根据个人经验总结的方法,旨在帮助其他开发者
    2024-12-12
  • 解读nextLine().split(“[\\s]“)的意思

    解读nextLine().split(“[\\s]“)的意思

    这篇文章主要介绍了解读nextLine().split(“[\\s]“)的意思,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • springboot中的RestTemplate使用详解

    springboot中的RestTemplate使用详解

    这篇文章主要介绍了springboot中的RestTemplate使用详解,RestTemplate继承自InterceptingHttpAccessor并且实现了RestOperations接口,其中RestOperations接口定义了基本的RESTful操作,这些操作在RestTemplate中都得到了实现,需要的朋友可以参考下
    2023-09-09
  • 一文详细讲解Java的父子继承、方法的重写与super关键字

    一文详细讲解Java的父子继承、方法的重写与super关键字

    Java中继承是通过extends关键字实现,帮助减少代码重复,提高复用性,子类继承父类的属性和方法,但私有成员除外,方法重写(override)使子类改造父类方法以适应新功能,这篇文章主要介绍了Java的父子继承、方法的重写与super关键字的相关资料,需要的朋友可以参考下
    2024-10-10

最新评论