不做轉換當然比較不了,雖然前面比較了類型,所以只有類型相同才會走到Dog other = (Dog) obj;這一行,但是你如果不寫這一行程序就不會知道obj其實也是Dog,就像我們知道如果能看到太陽在天上就一定是白天,但是如果你只是告訴程序太陽在天上,它并不能判斷出是白天,它只會嚴格按照我們指定的程序執行,但是并不具有最基本的邏輯推理能力。
類型相同為什么還會走Dog other = (Dog) obj;,屬性名稱的數據類型都相同了,那直接去判斷age!=obj.age兩個屬性值是否相等不就好了嗎,何必把obj的屬性強制轉換成Dog再去判斷呢?簡單說,刪去Dog other = (Dog) obj;,if括號中改為age!=obj.age和例程一樣不?
2017-02-12
不做轉換當然比較不了,雖然前面比較了類型,所以只有類型相同才會走到Dog other = (Dog) obj;這一行,但是你如果不寫這一行程序就不會知道obj其實也是Dog,就像我們知道如果能看到太陽在天上就一定是白天,但是如果你只是告訴程序太陽在天上,它并不能判斷出是白天,它只會嚴格按照我們指定的程序執行,但是并不具有最基本的邏輯推理能力。
2017-03-01
同疑問,我再看看