C# base用法
base 关键字用于从派生类中访问基类的成员:
- 调用基类上已被其他方法重写的方法;
- 指定创建派生类实例时应调用的基类构造函数。
仅允许基类访问在构造函数、实例方法或实例属性访问器中进行。
示例
using System ;
class Vehicle //定义交通工具(汽车)类
{
protected int wheels ; //公有成员:轮子个数
protected float weight ; //保护成员:重量
public Vehicle( ){;}
public Vehicle(int w,float g){
wheels = w ;
weight = g ;
}
public void Speak( ){
Console.WriteLine( "交通工具的轮子个数是可以变化的! " ) ;
}
} ;
class Car:Vehicle //定义轿车类:从汽车类中继承
{
int passengers ; //私有成员:乘客数
public Car(int w , float g , int p) : base(w, g)
{
wheels = w ;
weight = g ;
passengers=p ;
}
}
这里:base是什么意思呢?
public Car(int w , float g , int p) : base(w, g)
首先 base(w,g)
是继承基类构造函数
其次这里的 base(w,g)等价于父类的方法 Vehicle(int w , float g )
通俗点:爸爸:public Vehicle(int w,float g){
优点:高,壮
缺点:赌,赌
儿子:继承爸爸的优缺点。public Car(int w , float g , int p):Vehicle(w,g)
儿子所有的优缺点都是遗传爸爸的。
如果父类里有两个或者两个以上函数都有两个参数。那么base 调用的是哪个?
这个问题就很好的体现了base的作用了,当父类有多个参数时,base则可以用来声明调用哪个参数。