iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
JavaScript

大樂透對獎系列 第 21

介面

  • 分享至 

  • xImage
  •  

在撰寫Java程式時,經常會有臨時繼承某個類別或實作某個介面並建立實例的需求,由於這類子類別或介面實作類別只使用一次,不需要為這些類別定義名稱,這時可以使用匿名內部類別(Anonymous inner class)來解決這個需求。

透過Object型態的變數,能進行的多型操作,就只限於Object定義的方法,建立匿名類別實例,基本上沒太大用處。若是使用var自動推斷區域變數型態,繼承Object來建立匿名類別實例,倒是可以有特別的作用。

因為編譯器自動推斷出匿名的型態,你就可以直接取得定義的值域、操作新增的方法,若想臨時建立物件來組合某些資料或操作,這是可行的方式之一。

介面定義時可以有預設實作,或者稱為預設方法(Default methods),使用default關鍵字修飾,預設權限為public。預設方法令介面看來像是有抽象方法的抽象類別,然而因為介面本身不能定義資料成員,預設方法的實作中無法直接使用資料成員。

每個Ball實例就會擁有Comparable定義的預設方法。因為類別可以實作多個介面,運用預設方法,就可以在某介面定義可共用的操作,若有個類別需要某些可共用操作,只需要實作相關介面,就可以混入(Mixin)這些共用的操作了。


上一篇
介面
下一篇
介面
系列文
大樂透對獎30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言