C#中base关键字在继承中起到非常重要的作用。它与this关键字相比,this关键字代表当前实例。base关键字代表父类,使用base关键字可以调用父类的构造函数、属性和方法。
使用base关键字调用父类构造函数的语法如下: 子类构造函数:base(参数列表)
使用base关键字调用父类方法的语法如下: base.父类方法();
using System ; class Teacher//老师类 { public Teacher()//构造函数1 { Console.WriteLine ("我是一位教师。"); } public Teacher(string str)//构造函数2 { Console.WriteLine ("老师,"+str); } public void OutPut()//自定义方法 { Console.WriteLine ("输出方法"); } private string name; public string Name//属性 { get{return this.name;} set{this.name=value;} } public void getName() { Console.WriteLine ("我的名字是"+name); } } class Jack:Teacher { static string hello="你好"; public Jack():base(hello)//子类的构造函数继承的为父类第二个构造函数,注意写法 { } public void myOutPut()//自定义函数 { base.OutPut ();//引用父类的函数 } public string myName//自定义属性 { get{return base.Name ;} set{base.Name ="刘"+value;} } } class Test { static void Main() { Jack j=new Jack ();//输出“老师,你好” j.myOutPut ();//输出"输出方法" j.myName ="德华"; j.getName ();//输出“刘德华” } }
注意:base()调用父类构造函数时,不需要再次指定参数的类型,因为在子类中已经定义了这些参数,在base()中只需指定变量名即可,参数的类型必须和父类中的一致。