Java™ 教程(將接口用做類型)

將接口用做類型

定義新接口時,你將定義新的引用數據類型,你能夠在任何能夠使用任何其餘數據類型名稱的地方使用接口名稱,若是定義類型爲接口的引用變量,則分配給它的任何對象都必須是實現接口的類的實例。segmentfault

做爲示例,這裏是一種用於查找一對對象中的最大對象的方法,用於從實現Relatable的類實例化的任何對象:code

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;
}

經過將object1轉換爲Relatable類型,它能夠調用isLargerThan方法。對象

若是你在各類類中實現Relatable,那麼能夠將從這些類中實例化的對象使用findLargest()方法進行比較 — 前提是兩個對象屬於同一個類,一樣,它們均可以使用如下方法進行比較:繼承

public Object findSmallest(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ((obj1).isLargerThan(obj2) < 0)
      return object1;
   else 
      return object2;
}

public boolean isEqual(Object object1, Object object2) {
   Relatable obj1 = (Relatable)object1;
   Relatable obj2 = (Relatable)object2;
   if ( (obj1).isLargerThan(obj2) == 0)
      return true;
   else 
      return false;
}

這些方法適用於任何「relatable」對象,不管它們的類繼承是什麼,當它們實現Relatable時,它們能夠是它們本身的類(或超類)類型和Relatable類型,這爲它們提供了多重繼承的一些優勢,他們能夠從超類和接口得到行爲。接口


上一篇:實現接口

下一篇:不斷髮展的接口

相關文章
相關標籤/搜索