作者johnnny (枪圣吕未根!!)
看板SFFamily
标题Re: [问题] java?
时间Wed Oct 23 01:14:42 2002
※ 引述《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)