前两天在CSDN上看到一篇文章
说的是JAVA的单根继承特性是对OOP的优化和扩充看得我云山雾罩
OOP我以前也学过,可是为什么说单根继承是对OOP的优化呢
谁知道请一定告诉我!

解决方案 »

  1.   

    单根继承体系中的所有物件都有共通界面,所以最终它们都属于相同的type。在C++的设计中,你无法确保所有物件都隶属同一个基本类别。从回朔相容的观点来看,这么做比较符合C模型,并且比较不受限制。但是当你想要进行腽肭权的物件导向程序设计时,就得自行大灶自己的继承体系,以便提供某种便利性,而这种便利性在其他语言上却是内建的。你的程序库内部可能会有一些不相容界面,你得而外花费力气将新界面容入你的设计中(面对的可能是多重继承)。
    单根继承体系保证所有物件都拥有某些功能。在整个系统里,你因此知道可以在每个物件身上执行某些基本操作。单根继承体系再加上<在heap之中产生所有物件>,大大的简化了引参传递动作(这也是C++里十分复杂的问题之一)。
    单根继承体系也使垃圾回收器的实现更加容易。所有必备功能都可以安置于基类本身,然后垃圾回收器边可以发送适当寻系给系统中的每个物件。如果缺乏<单根继承体系>及<完全透过引用来操作物件>的系统特性,垃圾回收器的实现就会十分困难。
    由于所有物件都保证会有执行器类别资讯,所以你必不会因为无法判断物件的确切类型而陷入动弹不得的僵局。对于异常处理之类的系统级操作行为而盐,这一点格外重要,并且也能为程序设计带来更加优秀的弹性。
      

  2.   

    个人认为:
    1. JAVA的单根继承是针对C++里的多重继承,因此考虑问题时应将他们两个做比较2. 在(1)的前提下,垃圾回收将不再困难,因为每个物件都具有几个相同的METHOD和多重继承并不矛盾(多重继承一样可以将所有物件继承自一个或者多个CLASS,比如可以将所有物件继承自COBJECT)3. 至于说在异常处理的操作行为,个人认为可以独立出THROWABLE和EXCEPTION两个类别,需要进行异常处理的CLASS可以继承这些CLASS来达到同意抛错和同意处理的效果4. 如果从功能上来说,单根继承只是比较特殊的的多重继承,所以个人认为单根继承可以完成的功能多重继承都可以完成。这应该没有什么疑问!我主要想了解的不是有什么功能是单根继承可以完成而多重继承无法完成的,我更想了解单根继承比多重继承优秀在什么地方
      

  3.   

    说实话,单根继承是更加方便程序员编程。和去掉指针一样,减少程序中潜在的 bug.
    所以是对OOP的优化和扩充。
      

  4.   

    优化?是简化吧,如果程序多重继承时出现bug,那是程序员的错,不是程序的问题.
      

  5.   

    呵呵,如果有c++基础,现在来编java的的时候,你会体现其中的奥妙的,===================================
    我的一分耕耘,你能给一分收获
      

  6.   

    呵呵 建议看看java与模式 关于接口和抽象类的 我觉得挺不错:)
      

  7.   

    xmvigour(微电--有狼的气质 没狼的勇气 真郁闷):老兄,既然推荐了“java与模式 关于接口和抽象类的”,顺便也推荐几本书吧!★°∴°°∴ ☆°.·★°∴°.
             ◢◣   新    ◢◣
            ◢★◣  春   ◢★◣  
           ◢坛子◣ 快  ◢朋友◣ .·°∴★°.°∴°.☆° .·°
          ◢■■■◣乐 ◢■■■◣ ~~~~~~所有坛子里的朋友~~~~~~
          ︸︸||︸︸!!︸︸||︸︸°.°★ .·°∴°°.★☆° ·°
      

  8.   

    想想现实世界你就知道为什么单根特性是oop的完美表现了
      

  9.   

    这个帖子怎么越看越糊涂???
    到底是讨论什么啊!!!
    楼主的问题是关于“单根继承”,就是为什么Java中所有的类都要有共同的基类Object,
    可是怎么有这么多人都在回答为什么Java中只允许单继承(即一个类只能有一个基类)不允
    许多继承(即一个类可以有多个基类)。各位达人,回答问题之前看清楚好不好!!!!
      

  10.   

    个人感觉单根继承是一种对程序员来说的减负。多重继承的话比较复杂。当然如果用得好的话能够构建更复杂的UML。凡事都有两面性。JAVA语言用了单根继承,简化了代码逻辑,保持血统传承。更好的OO了。