好
頻道需要你的支持,謝謝你成為我們的會員(加入會員)
影片1 了解 Object 類別並 Override toString()
影片2 利用多型的觀念,寫出正確的 equals() 與 hashCode()
Object 類別是 Java 相當特殊的一個類別。它是所有類別的“根類別”。也就是說
Java 中的何任類別往上追溯到最上層類別都一定是
Object 類別。
建立新類別的時候,如果沒有指定上層類別,編譯器會自動在類別名稱後面加上 extends Object。若有指定上層類別。當然是以指定的類別為上層類別,但上層類別有沒有上層類別呢,一定有。因為最少有一個上層類別:Object。
所以說,Java 中的類別,除了 Object 之外。都至少有一個父類別。
Object 類別的第一個用意,是類別中宣告了
Java 希望環境中的每一個類別都一定要有的方法。因為“繼承了,就有了”。所以
Java 中的任何一個類別都會擁有這一些方法。至於擁有了以後要不要 Override 則由開發人員自行決定。重點是,就算沒有
Override,也一定有那一些方法。
Object 類別的另外一個用意,是搭配多型使用。因為“繼承了,就是了”, 也就是說:Java 中的類別,都 is-a Object。所以,只要是用
Object 宣告的變數,就可以指派任何類別的物件給它;只要是用
Object 宣告的集合,就代表這個集合中可以是任何類別的物件。只要是用Object宣告的參數。方法呼叫時,就可以在小括號中指派任何類別的物件。
Java 希望開發人員了解而且
Override 的三個方法:
1.
String toString()
在部份情境中,環境會呼叫物件的
toString。
2.
boolean equals(Object o)
若沒有 Override,預設為 == 的功能。
3.
int hashCode()
2個任何類別的物件,只要
equals 的值為
true,則 hashCode 的值一定相等。