我一直在尋找通過一些生產代碼,我使用的接口作爲類型(對象)使用一個接口作爲一個類型
的概念有點糊塗,我看到這樣的解釋http://download.oracle.com/javase/tutorial/java/IandI/interfaceAsType.html
這裏的代碼如下:
public Object findLargest(Object object1, Object object2) {
Relatable obj1 = (Relatable)object1;
Relatable obj2 = (Relatable)object2;
if ((obj1).isLargerThan(obj2) > 0)
return object1;
else
return object2;
}
凡Relatable
是一個接口,我不明白它真正的邏輯爲isLargerThan(obj2)
函數調用。
有人能爲我說清楚嗎?
你知道如果對象沒有實現接口會發生什麼嗎? – Albinoswordfish 2010-12-14 22:39:12
@Albinoswordfish會在(可關聯的)object1處出現ClassCastException; – ILMTitan 2010-12-14 22:41:24
它引發一個異常: http://download.oracle.com/javase/tutorial/java/IandI/subclasses.html 在拋出異常之前,可以使用'instanceof'運算符來檢查有效的轉換。 – Mehrdad 2010-12-14 22:41:32