码迷,mamicode.com
首页 > 编程语言 > 详细

java1.8函数式接口

时间:2016-05-25 14:40:42      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

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函数式接口

标签:

原文地址:http://www.cnblogs.com/wwzyy/p/5526599.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!