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();
}
}
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP