Java 8 中預設介面方法和靜態介面方法的區別。
根據 Oracle 的 Javadocs -
預設方法使您能夠向庫的介面新增新功能,並確保與為這些介面的舊版本編寫的程式碼的二進位制相容性。
一個靜態方法是與定義它的類關聯的方法,而不是與任何物件關聯。類的每個例項都共享其靜態方法。
介面中的靜態方法是介面類的一部分,不能實現或覆蓋它,而類可以覆蓋預設方法。
序號 | 關鍵 | 靜態介面方法 | 預設方法 |
---|---|---|---|
1 | 基礎 | 它是一個僅屬於介面的靜態方法。我們可以在介面本身中編寫此方法的實現。 | 它是一個帶有 default 關鍵字的方法,類可以覆蓋此方法。 |
2 | 方法呼叫 | 靜態方法只能在介面類上呼叫,不能在類上呼叫。 | 它可以在介面和類上呼叫。 |
3 | 方法名 | 介面和實現類都可以具有相同名稱的靜態方法,而不會相互覆蓋。 | 我們可以在實現類中覆蓋預設方法。 |
4. | 用例 | 它可以用作實用程式方法。 | 它可以用來在所有實現類中提供通用功能。 |
介面中預設方法和靜態方法的示例
public interface DefaultStaticExampleInterface { default void show() { System.out.println("In Java 8- default method - DefaultStaticExampleInterface"); } static void display() { System.out.println("In DefaultStaticExampleInterface I"); } } public class DefaultStaticExampleClass implements DefaultStaticExampleInterface { } public class Main { static void main(String args[]) { // Call interface static method on Interface DefaultStaticExampleInterface.display(); DefaultStaticExampleClass defaultStaticExampleClass = new DefaultStaticExampleClass(); // Call default method on Class defaultStaticExampleClass.show(); } }
廣告