Java 中介面是否繼承自物件類別?
在 Java 中,介面充當聲明方法簽署和提供抽象實作的藍圖。一個常見的誤解是介面是否像標準類別一樣從 Object 類別繼承。
沒有從 Object 類別繼承
與流行的看法相反,介面不直接從物件類別中。這表示預設情況下它們無權存取 equals()、hashCode()、toString() 或 wait() 等方法。
在介面上呼叫物件類別方法
儘管不是繼承自Object,介面仍然可以呼叫Object類別的方法。這是因為介面隱式宣告了與 Object 中的所有公共實例方法相對應的公共抽象方法,除非它們已經從超級介面繼承了這些方法。
例如,考慮以下程式碼:
<code class="java">interface Employee { } public class Test { public static void main(String[] args) { Employee e = null; e.equals(null); } }</code>
在這段程式碼中,Employee介面沒有明確聲明equals()方法。但是,表達式 e.equals(null) 編譯成功,因為 equals() 方法在 Employee(以及所有其他介面)中隱式宣告為公用抽象方法。
隱式介面宣告的原因物件方法
介面中物件方法的這種隱式宣告允許介面與更廣泛的 Java 生態系統無縫互動。它使介面能夠利用標準庫方法進行物件比較、雜湊、字串表示和同步,而無需明確定義這些方法。
以上是Java 介面繼承自物件類別嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!