C# virtual虚方法与override重写
在接下来的时间里面,我们准备为大家介绍“C# virtual虚方法与override重写”。
1、virtual修饰符:virtual修饰符可以将一个方法声明为虚拟方法。
语法格式如下:
访问权限修饰符 virtual 返回类型 方法名(参数1,...参数n)
{
方法主体代码;
}
语法格式分析:
(1)访问权限修饰符就是前面不学习过的public,private,protected等。
(2)virtual
(3)返回类 方法名,以及一对小括号与参数,以及一对大括号,都是前面学习过的
方法声明的语法格式。
2、虚方法的作用
虚方法的作用就是在子类继承父类以后,可以去重写父类中的方法,
而在子类中,重写父类的虚方法时,方法的访问权限,返回类型,方法名,
以及参数的类型与数量必须一样,
而可以重写的只是方法的主体部分中的代码。
重写方法的语法格式:
访问权限修饰符 override 返回类型 方法名(参数1,...参数n)
{
方法主体代码;
}
语法格式分析:
(1)访问权限修饰符需要与父类中的同名方法一样。
(2)override
(3)返回类 方法名,以及参数需要与父类中同名方法一样。
(4)一对大括号中的主体代码就是可以重写的部分。
2、例子:
//====================
//定义了动物类DongWu
//====================
Class DongWu
{
public int x;
public int y;
public DongWu()
{
x = 0;
y = 0;
}
public virtual int mx() //声明了虚方法mx
{
x = x + 1;
return x;
}
}
//================================
//定义了犀牛类 XiNiu 并继承了DongWu类
//================================
Class XiNiu :DongWu
{
public int Jiao; //角
public XiNiu()
{
Jiao = 1;
}
public override int mx() //重写了父类中的虚方法mx
{
x = x + 1;
y = y + 1;
int c = x + y;
return c;
}
};
//=====================================================
//Program类,是在C# (工程创建与添加新文件) 这一章学习时所创建的
//=====================================================
class Program
{
static void Main(string[] args) //入口方法Main
{
XiNiu XN = new XiNiu(); //定义了犀牛类XiNiu的对象XN。
int r = XN.mx(); //调用了子类中重写以后的mx,而不是父类DongWu中的mx方法,
所以,就会执行重写后的mx方法中的代码,
首先,执行x=x+1,即x = 0+1,结果为1,再赋给变量x,
所以,变量x中的值就由0变为1。
然后,再执行y=y+1,即y = 0+1,结果为1,再赋给变量y,
所以,变量y中的值就由0变为1。
然后,再执行int c=x+y,即c = 1+1,结果为2,再赋给变量c,
所以,变量c中的值为2。
最后,通过return c返回2给变量r,所以,变量r中的值为2。
}
}
非常好,现在,我们已经掌握了C#中的“virtual虚方法与override重写”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”。
不要停留在理论规则上面,快动起来吧!
(通过游戏模式学习与训练,需要在电脑上运行)