java1.8函数式接口

Posted 胖头猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java1.8函数式接口相关的知识,希望对你有一定的参考价值。

package com.wzy.t1;

@FunctionalInterface//此注解用来声明此接口为函数式接口
public interface People {
    
    /**
     * 1.函数式接口只能有一个抽象方法,而不是指只能有一个方法,
     *     因为equals()方法在java.lang.Object中已经实现,所以也符合函数式规范
     * 2.如果这个接口内只有一个抽象方法,那么即使不写@FunctionalInterface,也被看作是一个函数式接口
     * 3.可以有很多默认的方法
     * 4.使用default关键字,可以在接口内定义实例方法。
     *     注意,这个方法是并非抽象方法,而是拥有特定逻辑的具体实例方法。
     * */
    public void eat();
    //public void eat2();//有第二个会报错
    public boolean equals(Object obj);
    
//接口默认方法
default public void sleep() { System.out.println("躺着睡"); } default public void run() { System.out.println("走路。。"); } }

 

package com.wzy.t1;

public interface Student {
    public void eat();
    default void run() {
        System.out.println("小步跑");
    }
}

 

 

package com.wzy.t1;

public class Main implements People,Student{

    public static void main(String[] args) {
        new Main().run();
        new Main().eat();
        new Main().sleep();
    }

    @Override
    public void run() {
        //多继承:当两个接口出现相同的默认方法时,必须自己重新定义这个接口,或者指定要使用哪个接口的哪个默认方法
        People.super.sleep();
        People.super.run();
        Student.super.run();
    }
    @Override
    public void eat() {
        System.out.println("大口吃");
    }

}

 

以上是关于java1.8函数式接口的主要内容,如果未能解决你的问题,请参考以下文章

Java1.8函数式接口编程结合泛型简单使用案例demo

Java1.8函数式接口编程结合泛型简单使用案例demo

Java1.8新特性

java1.8函数式编程概念

Java1.8-Lambda

java1.8新特性