美文网首页
jdk8接口新增方法

jdk8接口新增方法

作者: 牧心musing | 来源:发表于2021-02-23 09:59 被阅读0次

在jdk8之前,接口中只有抽象方法。

1、接口引入默认方法

1.1 原因

一个接口如Map,其有几十个接口的实现。
如果有一天,我们需要为Map接口添加一个抽象方法,那么我们所有的实现类都需要去实现这个方法,其工程量十分巨大。
为此,在JDK8中,为接口新增了默认方法。

接口中的默认方法,实现类不必重写,可以直接使用,实现类也可以根据需要重写。这就方便了接口的拓展。

格式:在默认方法前面加上default修饰

interface A{
    public default void test(){
        System.out.println("interface aa");
    }
}

1.2 使用方法

  1. 实现类直接使用


    image.png
  2. 实现类重写默认方法


    image.png

2、接口引入静态方法

目的:方便接口扩展

格式:在默认方法前面加上static修饰

interface A{
    public static void test(){
        System.out.println("interface aa");
    }
}

使用方法

public class Demo02StaticFunction {
    public static void main(String[] args){
        E e = new E();
//        e.test() 实现类无法直接调用静态方法
        // 通过接口直接调用
        D.test();

    }
}

interface D{
    public static void test(){
        System.out.println("D static function");
    }
}

class E implements D{

}

3. 接口默认方法和静态方法的区别

1、默认方法通过实例调用,静态方法通过接口名调用
2、默认方法可以被继承,实现类可以直接使用接口默认方法,也可以重写默认方法
3、静态方法不能被继承,实现类不能重写接口静态方法,只能使用接口名调用。

如果某个方法需要被实现类继承或重写,则使用默认方法,如果不需要继承就是用静态方法。

相关文章

  • JDK8接口新特性:默认方法

    默认方法 在jdk8中关于接口新增一个特性,就是interface可以有默认方法。例如定义一个Named接口: 假...

  • jdk8接口新增方法

    在jdk8之前,接口中只有抽象方法。 1、接口引入默认方法 1.1 原因 一个接口如Map,其有几十个接口的实现。...

  • JDK8新特性-接口和日期

    1. 接口 1.1 default关键字 JDK8之前只能有抽象方法,不能有方法实现。JDK8之后,接口的实现类可...

  • 接口的变化

    1、JDK8之后对接口做了增加,接口中可以有默认方法和静态方法 2、接口中默认方法的语法规则 3、接口中静态方法的...

  • JDK8学习总结第一篇:常见函数式接口

    jdk8在java.util.function的包新增40余个函数式接口,本篇将对其中重要的的接口进行详细介绍。 ...

  • java.util ArryList相关类解读

    List接口先看下List接口所提供的方法以及对比Collection接口,有哪些是新增方法(红红框框着的是新增的...

  • JDK8新特性(一)

    一、JDK8之default关键字 默认方法: 接口里面定义一个默认方法,这个接口的实现类实现了这个接口之后,不用...

  • JAVA 8 新增特性之Lambda表达式+方法引用

    原文地址:JAVA 8 新增特性之Lambda表达式+方法引用 JDK8 已经发布了有几年了,但平时很少会用到新增...

  • Spring容器类别

    BeanFactory ApplicationContext(子接口)新增refresh(),close()方法主...

  • 9.7-全栈Java笔记:Set接口和实现类

    Set接口 Set接口继承自Collection,Set接口中没有新增方法,方法和Collection保持完全一致...

网友评论

      本文标题:jdk8接口新增方法

      本文链接:https://www.haomeiwen.com/subject/lsmbtltx.html