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();
}
}