看板 SFFamily 關於我們 聯絡資訊
※ 引述《Ibanez (一刻不得閒)》之銘言: : ※ 引述《weii (醉拳甘迺迪)》之銘言: : 圓柱如果繼承圓跟方 : 那圓柱是一種圓嗎 : 也不是一種方阿 : 所以這樣的繼承是沒有make sence的 我舉的例子不太好 用甲乙丙ABC來說 多重繼承是: 甲(superclass,已implement method) ┐丙(subclass,extend甲已implement的method 乙(superclass,已implement method) ┘ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 且extend乙已implement的method) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ interface是: A(superclass,已implement method) ┐C(subclass,extend A已implement的method B(interface,未implement method) ┘ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 且implement B未implement的method) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ so 我剛剛又想到了一個例子 甲:男生 乙:學生 丙:男學生 或許這個例子也蠻爛的 總而言之 我要強調的是 如果今天有一個丙 他有強烈的需求要直接同時使用"甲已implement的method和乙已implement的method" 而不是還要自己去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: 61.223.3.148 ※ 編輯: johnnny 來自: 61.223.3.148 (10/23 01:16)