Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1042716
  • 博文数量: 264
  • 博客积分: 6005
  • 博客等级: 大校
  • 技术积分: 2798
  • 用 户 组: 普通用户
  • 注册时间: 2007-08-08 20:15
文章分类

全部博文(264)

文章存档

2011年(42)

2010年(213)

2009年(4)

2008年(2)

2007年(3)

分类:

2010-03-31 21:23:35

java中式没有多重继承的,其实多重继承还是蛮有用的。 虽然有点不伦不类,有点杂交的感觉,但是有时候还是能帮我们解决问题的。 废话少说,步入正题,这是我曾经的课件上的一个例子。 拿出来老师不会生气吧。 嘿嘿。


如果有一个很好用的类库摆在你的面前,你会用吗?
    当然,你会用
        但是,用了以后你发现他原来没有你想象的那么完美
        ——接口并非完全符合你的要求,例如:有一个函数你希望是虚函数它却不是
        这时你想——修改源代码
        ——例如:将不是虚函数的函数改成虚函数
            但是,你没有源代码
        你又想——放弃使用这个类库
            但是,你已经基于这个类库编写了大量的程序

    于是,你开始绝望
                ……
                        ……
                            直到   
                你被多继承拯救!!






在我们的项目中,这些源代码是不能得到的,而我们得到的是已编译过的 vendor.obj 或 vendor.lib文件(或系统中相应的等价物)





使用该库会产生问题:
 首先析构函数不是虚的,这实际上是创建者的一个设计错误。
 f( )也不是虚的,这可能是库的创建者认为没有必要。但是我们会发现基类接口失去了解决前述问题的必要能力。
假若我们已经使用已存在的接口(不包含函数A ( )和B ( ),因为它们不受控制)编制了大量代码,而且并不打算改变它。

怎么办?
——用多继承修复接口










阅读(1274) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~