Java8 接口默认方法和静态方法

作者: 聪明的奇瑞 | 来源:发表于2018-01-26 17:38 被阅读107次
  • 在 Java8 之前接口变量必须是 public、static、final 修饰的,方法必须是 public、abstract 的
  • 但Java8 扩展了接口的定义,添加了默认方法(default)和静态方法,默认方法使得接口也可以有实现,该接口实现类可以不实现默认方法
interface Foo1 {
    default String Hello(String name){
        return "Hello "+name;
    };
}
  • 静态方法只能通过接口名调用,不能通过实现类调用,实现类也无需实现该方法,其它接口继承该接口时也不继承静态方法
interface Foo1 {
    static void sayHello(){
        System.out.println("Hello");
    }
}
Foo1.sayHello();
  • 如果一个接口多继承了两个接口,这两个接口包含了完全相同的静态方法,这种情况下不会报错,因为接口静态方法只能由该接口调用,如果这两个接口有相同的默认方法,则会报错,需要重写默认方法
  • 默认方法静态方法可以在不打破原有继承体系上改进接口,如官方库中给 Collection 接口增加了 stream()、forEach()方法

相关文章

  • Java8学习笔记目录

    Java8学习笔记 -- 接口的默认方法与静态方法 Java8学习笔记 -- Lambda表达式,Function...

  • Java 8 之默认方法和静态接口方法

    转载自30分钟入门Java8之默认方法和静态接口方法 默认方法 默认方法让我们能给我们的软件库的接口增加新的方法,...

  • Java8 新特性与 lambda 表达式笔记

    java8 的接口新特性 先看看下面的接口的默认方法和静态方法,感受一下: 默认实现方法 如果多继承状态下有默认方...

  • JAVA8_新特性_接口

    JAVA8的接口里的静态方法,可以有方法体,方法不是抽象的。 通过接口名直接调用 JAVA8的接口里的非静态方法,...

  • Java8新特性

    1.接口的默认方法和静态方法 在Java8之前,接口中只能包含抽象方法。那么这有什么样弊端呢?比如,想再Colle...

  • 30分钟入门Java8之方法引用

    30分钟入门Java8之方法引用 前言 之前两篇文章分别介绍了Java8的lambda表达式和默认方法和静态接口方...

  • Java 8 新特性 - 函数式接口 Functional In

    Java8的其中一个新特性,函数式接口。 什么是函数式接口?有且仅有一个抽象方法的接口(不包括默认方法、静态方法以...

  • java8接口中的默认方法

    java8接口中的默认方法 概述默认方法 java8中可以在接口中定义一个default修饰的方法,例如: 这样任...

  • 接口(interface)和抽象类(abstract class

    1、接口中的方法默认都是 public,所有方法在接口中不能有默认实现(Java8 开始接口方法可以有默认实现),...

  • 接口(interface)和抽象类(abstract class

    接口中的方法默认都是 public,所有方法在接口中不能有默认实现(Java8 开始接口方法可以有默认实现),而抽...

网友评论

    本文标题:Java8 接口默认方法和静态方法

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