Java新特性之介面的相容
什麼是介面的相容
Java8引入了預設方法 和靜態方法 ,這兩個方法可以直接在介面中寫實現,不影響介面的實現類,也就是解決了介面相容的問題。
為什麼要介面的相容
Java8之前,每一次對介面的修改都會影響其的全部實現。
注意
default 類.super.預設方法 物件.方法 類.方法
什麼是預設方法
被
default
關鍵字修飾的方法。
什麼是靜態方法
被
static
關鍵字修飾的方法。
如何實現介面的相容
介面例項
public interface Animal { public default void run() { System.out.println("run"); }; public static void eat() { System.out.println("eat"); } public static void sleep() { System.out.println("sleep"); } }
實現類例項
public class Dog implements Animal { //報錯 //@Override //public default void run() { //Animal.super.run(); //}; @Override public void run() { System.out.println("dog run"); }; public void run2() { Animal.super.run(); }; //報錯 //@Override //public static void eat() { //System.out.println("eat"); //} //報錯 //@Override //public void eat() { //System.out.println("eat"); //} public static void eat() { System.out.println("dog eat"); } public static void sleep() { System.out.println("dog sleep"); } public static void main(String[] args) { Animal a = new Dog(); a.run(); Animal.eat(); Animal.sleep(); } }
輸出結果
dog run eat sleep