我們可以通過從子類擴展來使用基類函數。通常我們使用在Object類中定義的equals()方法。我在書中讀到每個類都會擴展Object類因此我們可以在用戶定義的類中使用像equals()這樣的函數和子類引用。關於用戶定義類的對象類函數訪問
我有一個疑問是擴展Object類(即使任何其他擴展Object類的類),我們都可以使用equals方法。
可以解釋它是如何發生的嗎?
我們可以通過從子類擴展來使用基類函數。通常我們使用在Object類中定義的equals()方法。我在書中讀到每個類都會擴展Object類因此我們可以在用戶定義的類中使用像equals()這樣的函數和子類引用。關於用戶定義類的對象類函數訪問
我有一個疑問是擴展Object類(即使任何其他擴展Object類的類),我們都可以使用equals方法。
可以解釋它是如何發生的嗎?
無論您做什麼,默認情況下(默默無聞地),Java
中的每個課程都會默認(不明確地)延伸Object
。
這是一個隱含規則,JVM可能會實現該機制。
如果你這樣做:
Class Foo { }
的編譯器會把它當作好像它是
Class Foo extends Object { }
即使當類只能有至多一個超類,如果你這樣做
Class Foo extends Bar { }
Class Bar extends Biz{ }
在層次結構中的某個時刻,其中一個類將具有Object類作爲其父類,因此即使在o最上面的類將直接從擴展到Object,層次結構中的所有其他類都將間接擴展Object,因此可以訪問Object類定義的方法,例如:clone,equals,finalize等...
此致敬禮。