标签:
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("大口吃"); } }
标签:
原文地址:http://www.cnblogs.com/wwzyy/p/5526599.html