iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
JavaScript

大樂透對獎系列 第 16

繼承

  • 分享至 

  • xImage
  •  

Role類別的定義裡fight方法區塊實際上沒有撰寫任何程式碼,雖然滿足了多型需求,但會引發的問題是,你沒有任何方式強迫或提示子類別一定要實作fight方法,只能口頭或在文件上告知,不過如果有人沒有傳達到、沒有看文件或文件看漏了呢?

如果某方法區塊中真的沒有任何程式碼實作,可以使用abstract標示該方法為抽象方法(Abstract method),該方法不用撰寫{}區塊,直接;結束即可。

類別中如果有方法沒有實作,並標示為abstract,表示這個類別定義不完整,定義不完整的類別就不能用來生成實例,像是設計圖不完整,不能用來生產成品一樣。Java規定內含抽象方法的類別,一定要在class前標示abstract。如果嘗試用抽象類別建構實例,就會引發編譯錯誤。

子類別如果繼承抽象類別,對於抽象方法有兩種作法,一種作法是繼續標示該方法為abstract(該子類別因此也是個抽象類別,必須在class前標示abstract),另一個作法就是實作抽象方法。若兩個作法都沒實施,就會引發編譯錯誤。

子類別可以重新定義父類別的方法,重新定義時可以重新標示具體方法為抽象abstract,並令該方法沒有實作(該子類別也得標上abstract),如果又有類別繼承該子類別,就得實作該抽象方法。


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

尚未有邦友留言

立即登入留言