作者Ibanez (一刻不得闲)
看板SFFamily
标题Re: [问题] java?
时间Fri Oct 18 23:12:53 2002
※ 引述《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