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函数式接口的主要内容,如果未能解决你的问题,请参考以下文章