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