我是C#初学者,现在有个关于类的实例化的问题向大家请教一下.书上说:根据对象的生命周期,为了实例化派生的类,必须实例化它的基类,还必须实例化这个基类的基类,一直实例化System.Object为止.但是抽象类是指不能直接实例化的类。如果从表面意义上理解,这看起来是很矛盾的,请问高手该如何理解。谢谢!

解决方案 »

  1.   

    简单都说,就是构造一个类的实例,必须构造它的父类,即基类。因为一个类中是包含它基类的内容,当然也有它自己的内容(不然它就它基类本身了)。打个比方,比如要做一个带消音器的手枪,那么必须先做一把手枪,再做消音器。System.Object是所有类的基类,一切类都是由他衍生出来的。所以,导到最后就要先构造System.Object类。
    再说抽象类,抽象类不能直接被实例化,必须要实现它才能实例化。再打个比方,交通工具就好比一个抽象类。它有它的特点,可以在道路上行驶,可以被人控制,需要燃料。但是你跟厂家说要造个交通工具,人家肯定造不出来(无法直接实例化)。如果你按照交通工具的特点具体设计了一下,设计成了汽车(实现了抽象类),那么厂家就可以造了(可以实例化了)。