哪位介绍一下哈

解决方案 »

  1.   

    面向对象编程语言中的多重继承指的是一个类别可以同时从多于一个父类继承行为与特征的功能。与单一继承相对,单一继承指一个类别只可以继承自一个父类。多重继承可以导致某些令人混淆的情况,所以关于它的好处与风险之间孰轻孰重常常受人争论。Java使用了一个折衷的办法:Java允许一个类别继承自多于一个父接口(可以指定某一个类别,它继承了所有父类别的类型,并必须拥有所有父类别接口的外部可见方法的具体实现,并允许编译器强制以上要求),但只可以从一个父类别继承实现(方法与数据)。微软的.NET编程语言,例如C#和Visual Basic .NET也使用了这种接口的做法。面向对象的程序设计中,继承描述了两种类型或两个类的物件,其中一种是另外一种的“子类型”或“子类别”。子类别继承了父类别的特征,允许分享功能。例如,可以创造一个“哺乳类动物” 类别,拥有进食、繁殖等的功能;然后定义一个子类型“猫”,它可以从父类别继承上述功能,不需重新编写程序,同时增加属于自己的新功能,例如“追赶老鼠”。然而,如果想同时自多于一个结构继承,例如容许“猫”继承“哺乳类动物”之余,同时继承“卡通角色”和“宠物”,缺乏多重继承往往会导致十分笨拙的混合继承,或迫使同一个功能在多于一个地方被重写。(这带来了维护上的问题)多年以来,多重继承都是一个敏感的话题,反对者指它增加了程序的复杂性与含糊性,例如在“钻石问题”中。各种编程语言有不同的方式处理上述问题。例如Eiffel容许子类型透过重新命名,或提前为他们确定选择规则,来适应(adapt)它继承得来的功能。Java允许物件从多个接口继承,但仅允许一个实现继承。REALbasic与它相似,并增加了一个不需使用继承来“扩展”一个类别的功能。Perl使用一种有序列表式的继承机制:搜寻方法时,它会先搜寻当前类别的方法,然后使用深度优先搜索来顺序寻找各个继承类别及其父类别。CLOS允许程序设计者完全控制方法的组合。如果这还不足够,元对象协议给程序设计者一种手段去修改继承,方法调度,类别特例化,及其它内部的机制,而不影响系统的稳定性。
      

  2.   

    http://www.pconline.com.cn/pcedu/empolder/gj/c/0503/579115.html