※ 引述《johnnny (槍聖呂未根!!)》之銘言:
: ※ 引述《weii (醉拳甘迺迪)》之銘言:
: : 多重繼承的compiler比單一的複雜多了 效率也差
: compiler or virtual machine?
: : 至於你說不能完全來取代
: : 這句話應該是錯的
: : 改天來想想怎麼證明
: 我的意思是:
: 圓(superclass,已implement method) - 橢圓(subclass,extend圓已implement的method)
: 現在想要加入"畫"的功能
: 把"畫"想成是interface
: 圓(superclass,已implement method) ┐橢圓(subclass,extend圓已implement的method
: 畫(interface,未implement method) ┘ 且implement畫未implement的method)
: 但是如果我今天想要達到:
: 圓(superclass,已implement method) ┐圓柱(subclass,extend圓已implement的method
: 方(superclass,已implement method) ┘ 且extend方已implement的method)
: 這種多重繼承的特性就不能完全用interface來取代
: 怎麼辦?
我整理一下我對這各prob的認知
允許多重繼承的case:
想像 A B兩class
可以很簡單就做出class AB同時擁有兩父類別的特性
反之 單一繼承就不能簡單造出 A + B = AB 的等式
然而有沒辦法解決呢?
我已知的答案是 by composite object(物件複合)
idea大概就是讓A和B "合作" 處理事情
通常會把A和B包在如你說的 圓柱 類別裡面
不知道你認為這樣的解法夠不夠俐落?
此外
"介面"不是用來代替或取代"多重繼承"的
關於這個問題
請參考OO大師陳俊良教授的課程
--
「大哥!你....」
「你在以旁門左道的方法,逼自己的劍氣踰越極限﹖」
「廢話!」應雄反駁:
「什麼旁門左道﹖能夠將最強的功力提昇至無法再上的強中之強,
才是必勝的最佳戰略!」
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.201.208.96