有关多重继承、抽象数据类型和java的一些情况(转载)

        许多C++程序员都知道Java在很大程度上是基于C++的,然后Java的创立者选择省略掉多重继承。他们认为多重继承引入了复杂性,这不利于Java的易用性。他们认为使用所谓的接口可以实现多重继承的90%的功能。

       一个接口更像一个抽象数据类型,它定义了一组只能在派生类中实现的函数。然后使用接口,你并不是直接从接口派生,而是从另一个类派生后实现这个接口,就像多重继承一样。这样,抽象数据类型和多重继承的结合使你提供了类似于功能类的东西但又没有多重继承的复杂性活系统开销。另外,由于接口既不能有实现也不能有数据成员,因此也就不需要虚继承。

       究竟这是一个错误还是一个特点由旁观者来评说。无论在哪种情况下,如果你理解了C++中的多重继承和抽象数据类型,一旦你也想学习Java语言的话,你就会再使用Java语言的一些高级功能方面处于有利的位置。

        在1997年1月的C++ Report中,Robert Martin的文章“C++ and Java: A Critical Comparison”详细讨论了C++ h和Java中的观察着模式和其实现方法。

posted on 2012-06-18 12:13  Jerry Zong  阅读(322)  评论(0编辑  收藏  举报

导航