iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何理解Java8接口中的默认方法和静态方法
  • 580
分享到

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

2023-06-25 15:06:56 580人浏览 薄情痞子
摘要

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

本篇内容介绍了“如何理解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接口中的默认方法和静态方法

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

--结束END--

本文标题: 如何理解Java8接口中的默认方法和静态方法

本文链接: https://www.lsjlt.com/news/305645.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解Java8接口中的默认方法和静态方法
    本篇内容介绍了“如何理解Java8接口中的默认方法和静态方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.接口中的默认方法和静态方法Ja...
    99+
    2023-06-25
  • Java8 接口默认方法和静态方法
    目录1、默认接口方法2、静态接口方法3、两者的场景差异前些日有同学问我Java接口中为什么要增加一个默认方法。在Java 8 中不单单增加了默认接口方法还增加了静态接口方法。今天就来...
    99+
    2024-04-02
  • 详解Java8中接口的默认方法和静态方法
    目录一、基本语法二、使用场景三、作用四、使用案例三、总结Java 8是Java语言的一个重要版本,其中引入了许多新特性和改进,其中一个值得关注的特性是接口的默认方法和静态方法。这篇文...
    99+
    2023-05-20
    Java8接口默认方法 Java8接口静态方法 Java8接口 Java8新特性
  • Java8接口之默认方法与静态方法详解
    目录前言为什么选择默认方法?Java 8示例:接口中的默认方法Java 8示例:接口中的静态方法Java 8 - 抽象类与接口总结前言 在Java8之前,java中的接口只能有抽象方...
    99+
    2024-04-02
  • Java8新特性之接口中的默认方法和静态方法详解
    目录一、前言二、为什么在 Java 接口中使用默认方法?三、为什么在 Java 接口中使用静态方法?四、场景一:接口中的默认方法五、场景二:接口中的静态方法六、情景三:多重继承 - ...
    99+
    2024-04-02
  • 深入理解Java8新特性之接口中的默认方法和静态方法
    1.接口中的默认方法和静态方法 Java 8中允许接口中包含具有具体实现的方法,该方法称为 “默认方法” ,默认方法使用 default 关键字修饰。 接口默认方法的 ” 类优先 ”...
    99+
    2024-04-02
  • Java8新特性之接口中默认方法和静态方法的示例分析
    这篇文章给大家分享的是有关Java8新特性之接口中默认方法和静态方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言Java 8 引入了默认方法以及可以在接口中定义的静态方法。默认方法是一个普通的...
    99+
    2023-06-15
  • 一文教你使用Java8中的静态接口方法
    一文教你使用Java8中的静态接口方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。默认方法默认方法让我们能给我们的软件库的接口增加新的方法,并且能保证对使用这个接口的老版本代...
    99+
    2023-05-31
    java8 静态接口 ava
  • SpringBootsecurity默认拦截静态资源的解决方法
    Spring Boot security 会默认登陆之前拦截全部css, js,img等动态资源,导致我们的公开主页在登陆之前很丑陋 像这样: 网上很多解决办法都过时了比如还在使用...
    99+
    2023-03-19
    Spring Boot security拦截静态资源 Spring Boot security静态资源
  • java接口使用默认方法的讲解
    1、接口中默认方法的格式: public default返回值类型方法名(参数列表) { } 2、接口中默认方法的注意事项: 默认的方法不是抽象的方法,所以不重写。但是可以重写...
    99+
    2024-04-02
  • Java 中的静态字段和静态方法
    目录一、静态变量静态变量声明静态变量测试二、静态方法静态方法测试静态方法是如何工作的为什么 Java Main 方法是静态方法三、静态常量四、总结先看看下面这一串代码: public...
    99+
    2024-04-02
  • 怎么在java接口中使用默认方法
    本篇文章为大家展示了怎么在java接口中使用默认方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点...
    99+
    2023-06-14
  • java接口中静态方法的继承怎么实现
    这篇文章主要讲解了“java接口中静态方法的继承怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java接口中静态方法的继承怎么实现”吧!1、格式public static返...
    99+
    2023-06-30
  • Android设置默认锁屏壁纸接口的方法
    本文实例为大家分享了Android设置默认锁屏壁纸接口的具体代码,供大家参考,具体内容如下 完成自定义service后,接下来就是具体实现接口 1、在frameworks/base/...
    99+
    2024-04-02
  • java接口使用默认方法的示例分析
    这篇文章给大家分享的是有关java接口使用默认方法的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、接口中默认方法的格式:public default返回值类型方法名(参数列表) {...
    99+
    2023-06-14
  • Java中设置默认方法参数值的方法】——如何在Java中设置默认方法参数值
    Java中设置默认方法参数值的方法】——如何在Java中设置默认方法参数值 在Java编程中,经常会遇到需要为方法参数设置默认值的情况。这种需求可以通过一些技巧和特性来实现,从而提高代码的可读性和灵活...
    99+
    2023-10-03
    java 开发语言 Java
  • php中的静态属性和静态方法怎么用
    这篇文章主要介绍“php中的静态属性和静态方法怎么用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php中的静态属性和静态方法怎么用”文章能帮助大家解决问题。在php中,通过static关键字修饰的...
    99+
    2023-06-26
  • 如何使用Mockito调用静态方法和void方法
    一、mock 静态方法 mockito库并不能mock静态方法,需要依赖powermock 第一步:给类添加注解 // 静态类优先加载,所以需要提前告诉powermock哪些静态...
    99+
    2024-04-02
  • Java中的静态字段和静态方法怎么用
    这篇文章主要介绍了Java中的静态字段和静态方法怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。先看看下面这一串代码:public class Mai...
    99+
    2023-06-29
  • PHP中的静态方法与抽象方法详解
    PHP作为一种常用的服务器端脚本语言,有许多高级特性可供开发者灵活运用。其中,静态方法和抽象方法在面向对象编程中起着重要的作用。本文将深入探讨PHP中静态方法和抽象方法的概念、用法和实...
    99+
    2024-03-05
    php 静态方法 抽象方法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作