java8中介面的預設方法和靜態方法
阿新 • • 發佈:2020-12-21
預設方法
Java 8中允許介面中包含具有具體實現的方法,該方法稱為
“預設方法”,預設方法使用 default 關鍵字修飾。
例如:
public interface MyFun {
default String getName(){
return "哈哈哈";
}
}
介面預設方法的” 類優先” 原則
若一個介面中定義了一個預設方法,而另外一個父類或介面中又定義了一個同名的方法時選擇父類中的方法。如果一個父類提供了具體的實現,那麼介面中具有相同名稱和引數的預設方法會被忽略。
介面衝突。如果一個父介面提供一個預設方法,而另一個介面也提供了一個具有相同名稱和引數列表的方法(不管方法是否是預設方法), 那麼必須覆蓋該方法來解決衝突.
interface MyInterface { default String getName(){ return "呵呵呵"; } } interface MyFun { default String getName(){ return "哈哈哈"; } } public class SubClass implements MyFun, MyInterface{ @Override public String getName() { return MyInterface.super.getName(); } }
介面中的靜態方法
Java8 中,介面中允許新增靜態方法
interface MyInterface {
public static void show(){
System.out.println("介面中的靜態方法");
}
# 使用
public static void main(String[] args) {
MyInterface.show();
}