博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

在上一个实例中,客车和卡车这两个类都用到了一个关键字“base”,用来调用基类的构造函数。

       但是事实上base并不是专门用来调用基类构造函数的,base关键字的作用就是在派生类中去访问基类中所有非私有的类成员。

       小天:切,骗我的吧,我做上面练习的时候,发现什么都不写也可以访问基类的成员。

       老田:如果基类成员被派生类复写或者覆盖了呢?看下MSDN的解释吧:

·         调用基类上已被其他方法重写(重写就是在子类中重新创建一个和基类方法的返回类型、方法名、参数完全一样的方法,下面接着讨论)的方法。

·         指定创建派生类实例时应调用的基类构造函数。

还要注意的是:

l  基类访问只能在构造函数、实例方法或实例属性访问器中进行。

l  从静态方法中使用 base 关键字是错误的。

 

另外一个与base对应的关键字是this,该关键字主要用于访问本类中的成员,其实通常情况下,thisbase都不用写,但是还是上面说到的这两点,一是基类成员被子类成员重写了;另外一点就是调用构造函数的时候,这点在上面的例题和之前的构造函数重载都已经用到,就不再举例了。

    本文章为天轰穿原创作品,转载请注明出处及作者。