一、总体概要
this引用类的当前实例。静态成员方法中不能使用this关键字,this关键字只能在实例构造函数、实例方法或实例访问器中使用。base关键字用于从派生类中访问基类的成员。下面学习一下这二个关键字的使用方法。
二、知识点
base是指定创建派生类实例时应调用的基类构造函数;
this是调用基类上已被其他方法重写的方法。
注意:不能从静态方法中使用base关键字,base关键字只能在实例构造函数、实例方法或实例访问器中使用。
三、实战学习
以C#语言为例,很好的利用base和this使得代码更加的简洁、灵活。
abstract class Player
{
//声明并设定名字
protected string name;
public Player(string name)
{
this.name = name; // this 关键字引用类的当前实例。
}
public abstract void Attack(); //定义进攻方法
public abstract void Defense(); //定义防守方法
}
//前锋类
class Forwards : Player
{
//实现父类的方法:进攻和防守
public override void Attack()
{
Console.WriteLine("前锋 {0} 进攻",name );
}
public override void Defense()
{
Console.WriteLine("前锋 {0} 防守", name);
}
//派生类构造函数并用:base调用基类构造函数
public Forwards(string name)
: base(name)
{
}
}
abstract class Player
{
//声明并设定名字
protected string name;
public Player(string name)
{
this.name = name; // this 关键字引用类的当前实例。
}
public abstract void Attack(); //定义进攻方法
public abstract void Defense(); //定义防守方法
}
//前锋类
class Forwards : Player
{
//实现父类的方法:进攻和防守
public override void Attack()
{
Console.WriteLine("前锋 {0} 进攻",name );
}
public override void Defense()
{
Console.WriteLine("前锋 {0} 防守", name);
}
//派生类构造函数并用:base调用基类构造函数
public Forwards(string name)
: base(name)
{
}
}
四、总结
面向对象的知识很多,很细腻。这就要我们保持很好的学习方法,用小故事把知识点串联起来,这才能保持高效的记忆。