你会使用VB.NET里的多重继承吗

ZDNet软件频道 时间:2003-05-26 作者:BUILDER.COM |  我要评论()
本文关键词:
C#允许多重继承,但是在VB.NET里只能使用深层继承。在VB.NET里能够使用多重继承吗?
本文译自Builder.com,未经许可请勿转载我注意到了一个情况,那就是C#允许多重继承(multiple inheritance),但是在VB.NET里我只能使用深层继承(deep inheritance)。在VB.NET里能够使用多重继承吗?或者说VB.NET的程序员就只能如此了?

在提出这个问题的时候,我可能已经在考虑C++了。C++能够支持多重继承,但是C#和VB.NET都不支持。它们走了和Java相同的路线,也就是说它们只允许来自单基类(single base class)的继承。继承关系表示两个类之间的IS A关系。如果考虑到一个类有可能通过多IS A 关系被分类,那么缺少多重继承就成为了这种可能性的一个因素。让我们以EmployeeUSPresidentUSCitizen这三个类为例子,它们之间的关系是(见A):

  • USPresident IS A Employee
  • USPresident IS A USCitizen

图A

在C++里,USPresident能够衍生自多个基类;而在.NET的语言里,它就不能这样。


如果多重继承得到了支持,那么USPresident就会同时继承自Employee和USCitizen。但是在.NET的语言里,你必须运用接口来表示多重IS A关系。就和Java一样,一个类能够继承自一个基类,而一个类也能够实现多个接口。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134