※ 引述《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)