Java™ 教程(將介面用作型別)

博弈發表於2019-01-19

將介面用作型別

定義新介面時,你將定義新的引用資料型別,你可以在任何可以使用任何其他資料型別名稱的地方使用介面名稱,如果定義型別為介面的引用變數,則分配給它的任何物件都必須是實現介面的類的例項。

作為示例,這裡是一種用於查詢一對物件中的最大物件的方法,用於從實現Relatable的類例項化的任何物件:

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型別,這為它們提供了多重繼承的一些優點,他們可以從超類和介面獲得行為。


上一篇:實現介面

下一篇:不斷髮展的介面

相關文章