天轰穿C# -vs2010 - 04面向对象的编程之调用基类成员【原创】
2013-01-09 13:21
323 查看
在上一个实例中,客车和卡车这两个类都用到了一个关键字“base”,用来调用基类的构造函数。
但是事实上base并不是专门用来调用基类构造函数的,base关键字的作用就是在派生类中去访问基类中所有非私有的类成员。
小天:切,骗我的吧,我做上面练习的时候,发现什么都不写也可以访问基类的成员。
老田:如果基类成员被派生类复写或者覆盖了呢?看下MSDN的解释吧:
· 调用基类上已被其他方法重写(重写就是在子类中重新创建一个和基类方法的返回类型、方法名、参数完全一样的方法,下面接着讨论)的方法。
· 指定创建派生类实例时应调用的基类构造函数。
还要注意的是:
l 基类访问只能在构造函数、实例方法或实例属性访问器中进行。
l 从静态方法中使用 base 关键字是错误的。
另外一个与base对应的关键字是this,该关键字主要用于访问本类中的成员,其实通常情况下,this和base都不用写,但是还是上面说到的这两点,一是基类成员被子类成员重写了;另外一点就是调用构造函数的时候,这点在上面的例题和之前的构造函数重载都已经用到,就不再举例了。
本文章为天轰穿原创作品,转载请注明出处及作者。
但是事实上base并不是专门用来调用基类构造函数的,base关键字的作用就是在派生类中去访问基类中所有非私有的类成员。
小天:切,骗我的吧,我做上面练习的时候,发现什么都不写也可以访问基类的成员。
老田:如果基类成员被派生类复写或者覆盖了呢?看下MSDN的解释吧:
· 调用基类上已被其他方法重写(重写就是在子类中重新创建一个和基类方法的返回类型、方法名、参数完全一样的方法,下面接着讨论)的方法。
· 指定创建派生类实例时应调用的基类构造函数。
还要注意的是:
l 基类访问只能在构造函数、实例方法或实例属性访问器中进行。
l 从静态方法中使用 base 关键字是错误的。
另外一个与base对应的关键字是this,该关键字主要用于访问本类中的成员,其实通常情况下,this和base都不用写,但是还是上面说到的这两点,一是基类成员被子类成员重写了;另外一点就是调用构造函数的时候,这点在上面的例题和之前的构造函数重载都已经用到,就不再举例了。
本文章为天轰穿原创作品,转载请注明出处及作者。
相关文章推荐
- 天轰穿C# -vs2010 - 04面向对象的编程之Object基类【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之成员【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之构造函数之间的调用【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之虚成员和重写【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之隐藏基类方法【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之面向对象的编程简介【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之类创建类库项目和项目属性【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之匿名类型 【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之运算符重载的示例【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之重载运算符【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之类嵌套和包含 【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之简单数组 【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之属性【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之实现继承【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之多态【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之类关系图【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之运算符的工作方式【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之分部类 【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之继承【原创】
- 天轰穿C# -vs2010 - 04面向对象的编程之扩展方法 【原创】