JAVA8的接口里的静态方法,可以有方法体,方法不是抽象的。
package com.wjb.interfaceDemo;
/**
* Created by ptdy on 2017/5/18.
*/
public interface Java8 {
public static void method1(){
System.out.println("wjb");
}
}
通过接口名直接调用
package com.wjb.interfaceDemo;
/**
* Created by ptdy on 2017/5/18.
*/
public class Java8Test {
public static void main(String[] args) {
Java8.method1();
}
}
JAVA8的接口里的非静态方法,可以有方法体,方法不是抽象的。必须加上default关键字,不然报错。
package com.wjb.interfaceDemo;
/**
* Created by ptdy on 2017/5/18.
*/
public interface Java8 {
public default void method2(){
System.out.println("abc");
}
}
但是不能通过接口名直接调用,必须通过实现类对象来调用。实现类不需要重写实现方法,因为接口的方法不是抽象的。
注意:(如果实现类要重写接口方法也行,不能加上default关键字,如果重写了方法,那么就会调用重写的方法内容)
package com.wjb.interfaceDemo;
/**
* Created by ptdy on 2017/5/18.
*/
public class Java8Impl implements Java8 {
}
package com.wjb.interfaceDemo;
/**
* Created by ptdy on 2017/5/18.
*/
public class Java8Test {
public static void main(String[] args) {
Java8Impl java8 = new Java8Impl();
java8.method2();
}
}