看板 SFFamily 關於我們 聯絡資訊
※ 引述《weii (醉拳甘迺迪)》之銘言: : ※ 引述《johnnny (槍聖呂未根!!)》之銘言: : : 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) 圓柱如果繼承圓跟方 那圓柱是一種圓嗎 也不是一種方阿 所以這樣的繼承是沒有make sence的 : : 這種多重繼承的特性就不能完全用interface來取代 : : 怎麼辦? : 我整理一下我對這各prob的認知 : 允許多重繼承的case: : 想像 A B兩class : 可以很簡單就做出class AB同時擁有兩父類別的特性 : 反之 單一繼承就不能簡單造出 A + B = AB 的等式 : 然而有沒辦法解決呢? : 我已知的答案是 by composite object(物件複合) 這個贊 : idea大概就是讓A和B "合作" 處理事情 : 通常會把A和B包在如你說的 圓柱 類別裡面 : 不知道你認為這樣的解法夠不夠俐落? : 此外 : "介面"不是用來代替或取代"多重繼承"的 : 關於這個問題 : 請參考OO大師陳俊良教授的課程 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.184.92.198