看板 SFFamily 關於我們 聯絡資訊
※ 引述《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