首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java1.8新特性 -- 接口默认方法

以前经常会有面试题问接口里是否能写具体方法,现在依然还有些菜鸟再出这个面试题。Java 8 新增了接口的默认方法。简单说,默认方法就是接口可以有实现方法,而且不需要实现类去实现其方法。...接口是个双刃剑,好处是面向抽象而不是面向具体编程,缺陷是当需要修改接口时候,需要修改全部实现该接口的类,为了解决这个问题所以引进的默认方法,目的是为了解决接口的修改与现有的实现不兼容的问题。...当需要修改接口的时候可以直接添加默然的方法,而不需要去修改所有的实现类。...; } } 多个默认方法 一个接口有默认方法,考虑这样的情况,一个类实现了多个接口,且这些接口有相同的默认方法,以下实例说明了这种情况的解决方法: public interface...void print(){ vehicle.super.print(); } } 静态默认方法 Java 8 的另一个特性是接口可以声明(并且可以提供实现)静态方法。

71730
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Java1.8之Lambda表达式

    表达式,通过lambda表达式可以替代我们之前写的匿名内部类来实现接口。...4、Lambda表达式语法,关于接口方法参数、无参、单个参数、两个参数、有返回值、没有返回值的情况。如何来根据lambda来返回接口函数。...,所谓的函数式接口,当然首先是一个接口,然后就是在这个接口里面只能有一个抽象方法。...这种类型的接口也称为SAM接口,即Single Abstract Method interfaces。 特点:   1)、接口有且仅有一个抽象方法。   2)、运行定义静态方法。   ...5)、该注解不是必须的,如果一个接口符合"函数式接口"定义,那么加不加该注解都没有影响。加上该注解能够更好的让编译器进行检查。如果编写的不是函数时接口,但是加上该注解,那么编译器会报错。

    33720

    Java1.8之Lambda表达式、流Stream学习

    答:函数接口是只有一个抽象方法的接口,用作Lambda表达式的类型。...System.out.println(bookStreamMax.toString()); 39 System.out.println(); 40 41 // java1.8...如果函数的参数列表里包含函数接口,或该函数返回一个函数接口,那么该函数就是高阶函数。...答:1)、Java1.8的默认方法,如果子类未实现父接口的方法,则使用父接口里面的方法,这样的方法叫作默认方法,在任何接口中,无论函数接口还是非函数接口,都可以使用该方法。   ...如果在继承链中有方法体或抽象的方法声明,那么就可以忽略接口中定义的方法。   2)、子类胜于父类。如果一个接口继承了另一个接口,且两个接口都定义了一个默认方法,那么子类中定义的方法胜出。

    74010
    领券