书上是这么写的:在C#中,一个类最多只允许从一个类中派生;不允许从两个或者更多的类中派生。我从书中前面的内容理解到基类和派生类是继承的一种关系。派生类继承于基类,也就是说基类是两个或更多类别的共同特性,派生类是他们之间的不同特性。不知道说的对不对,但是前面的内容(在C#中,一个类最多只允许从一个类中派生;不允许从两个或者更多的类中派生。是不是这话说的有点不严谨呢?是不是应该是:一个派生类最多只允许从一个类中派生,不允许从两个或者更多类中派生呢?比如马和鲸都是哺乳动物,那按照书中的意思是不是只能把马单独派生到一个派生类,然后再把鲸单独派生到一个派生类,而不能同时将这两个类派生到一个派生类里,是这意思吗?为了声明一个类是从另一个类继承的,需要使用以下语法:
class DerivedSubClass : BaseClass{...}
一个类最多只允许从一个类中派生;不允许从两个或者更多的类中派生。然而,除非将“DerivedSubClass”声明为sealed,否则可以创建更多的派生类,使用相同的语法从DerivedSubClass中派生:
class DerivedSubClass : DerivedClass{...}
疑问就是:那我怎么知道“派生类”(DerivedSubClass)后面是基类还是其他派生类呢?

解决方案 »

  1.   

    一个类最多只允许从一个类中派生指的是你不能够
    public class C : B,A{}
    至于
    public class B : A{}
    public class C : B{}
    是多层派生,而不是多派生
      

  2.   

    sealed 的作用是阻止别人从其继承一个类最多只允许从一个类中派生;不允许从两个或者更多的类中派生。然而,除非将“DerivedSubClass”声明为sealed,否则可以创建更多的派生类,使用相同的语法从DerivedSubClass中派生: 
    这两句没联系,第一句是DerivedSubClass作为子类(派生类)说的,第二句是作为父类说的一个类只能有一个父类,更多的类别是通过接口来实现的,也就是说一个类可以继承一个类和多个接口