許多人初學Java 時,或許難以理解抽象類別和介面的差異,簡單整理摘要如下,若有誤還望各位先進指點Orz 概述抽象類別(Abstract Class) 使用abstract ... ... <看更多>
「java abstract interface使用時機」的推薦目錄:
- 關於java abstract interface使用時機 在 Re: [請益] 多型用在哪- 看板Soft_Job - 批踢踢實業坊 的評價
- 關於java abstract interface使用時機 在 抽象類別(Abstract Class) vs 介面(Interface) | Xuan's Blog 的評價
- 關於java abstract interface使用時機 在 實在搞不懂oo裡的抽象類別及介面何時要應用 - Mobile01 的評價
- 關於java abstract interface使用時機 在 android-gitbook/faq.md at master - GitHub 的評價
- 關於java abstract interface使用時機 在 java class繼承2023-精選在Instagram/IG照片/Dcard上的焦點 ... 的評價
java abstract interface使用時機 在 實在搞不懂oo裡的抽象類別及介面何時要應用 - Mobile01 的推薦與評價
還是想不出來抽象類別到底何時要使用? ... 你應該是學java 吧. ... 一定會有的動作, 就寫在abstract class 裡, 不一定會有的動作,就寫在interface 裡 ... <看更多>
java abstract interface使用時機 在 android-gitbook/faq.md at master - GitHub 的推薦與評價
應該要問的是「哪時候使用abstract class 還是interface + class」。 ... 什麼是泛形(generic) 以及 <? super XX> 與 <? extends XX> 的使用時機. ... <看更多>
java abstract interface使用時機 在 java class繼承2023-精選在Instagram/IG照片/Dcard上的焦點 ... 的推薦與評價
Java 使用 extends 关键字来实现继承: class Person { private String name; ... Abstract Class能繼承類別及實作Interface public abstract . ... <看更多>
java abstract interface使用時機 在 Re: [請益] 多型用在哪- 看板Soft_Job - 批踢踢實業坊 的推薦與評價
※ 引述《empireisme (empireisme)》之銘言:
: 請問多型的用途是?
ㄛ現在ㄉ想法4 沒有多型 只有介面
多型的用例之一
for(auto p_actor : actors)
p_actor->act()
對ㄛ來縮 p_actor實際上到底是什麼 並不重要
我只要知道他是actor會act就好
他有可能是warrior也可能是wizard, but i don't care
那麼寫久了 你就會看到一些反模式
if(auto p_wizard = dynamic_cast<Wizard>(p_actor))
p_wizard->cast_spell()
或者是
virtual void act() override {assert(false); /*not support*/}
前者的問題在於 就算有一種方法能讓dynamic_cast的效能神快
這個代碼卻涉及了對Wizard的知識 代表在統一處理actor的片段中多了一個特例
後者的問題在於 所有actor都應該要能act 為什麼你不支援
有可能是一個程式設計師只想要base class的特定功能 又懶得自己開一個新的
然後class越來越肥 可能大家都看過惹
這就是為什麼java標榜他只能單一繼承 然後又特例獨行搞了個implement interface
其實就是變向要你做到粒度 不然你會越寫越屎
所以縮 如果你只是要介面 為什麼不用template
template對許多不熟悉c++的工程師來說陌生
而且ide支援度不高 所以說c++ 20的concept真是好用
結合繼承的優點 又兼容了介面ㄉ彈性 那就是policy
就算不用policy 也可以用component的pattern
再不然 你也可以用pure abstract class來引入interface的風格
最後 現在go跟rust的interface跟trait 其實講的就是這件事
因為比起繼承還是多型啥的玩意兒 其實大家最關注的還是介面跟行為
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.126.131 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1614874812.A.171.html
... <看更多>