java中式没有多重继承的,其实多重继承还是蛮有用的。 虽然有点不伦不类,有点杂交的感觉,但是有时候还是能帮我们解决问题的。 废话少说,步入正题,这是我曾经的课件上的一个例子。 拿出来老师不会生气吧。 嘿嘿。
如果有一个很好用的类库摆在你的面前,你会用吗?
当然,你会用
但是,用了以后你发现他原来没有你想象的那么完美
——接口并非完全符合你的要求,例如:有一个函数你希望是虚函数它却不是
这时你想——修改源代码
——例如:将不是虚函数的函数改成虚函数
但是,你没有源代码
你又想——放弃使用这个类库
但是,你已经基于这个类库编写了大量的程序
于是,你开始绝望
……
……
直到
你被多继承拯救!!
在我们的项目中,这些源代码是不能得到的,而我们得到的是已编译过的 vendor.obj 或 vendor.lib文件(或系统中相应的等价物)
使用该库会产生问题:
首先析构函数不是虚的,这实际上是创建者的一个设计错误。
f( )也不是虚的,这可能是库的创建者认为没有必要。但是我们会发现基类接口失去了解决前述问题的必要能力。
假若我们已经使用已存在的接口(不包含函数A ( )和B ( ),因为它们不受控制)编制了大量代码,而且并不打算改变它。
怎么办?
——用多继承修复接口
阅读(1309) | 评论(0) | 转发(0) |