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重写”这个知识点,但是,如何去运行用它呢?所以,我们就要通过下方的按钮进入到游戏中,然后,运用它去完成任务,这样,才可以加深大家对每个知识点的理解和运用,以及“尽快进入到编程的状态”

 

  不要停留在理论规则上面,快动起来吧!

(通过游戏模式学习与训练,需要在电脑上运行)

进入游戏学习与训练