【C#学习笔记】【Virtual】

C#学习笔记系列

第一章 【C#学习笔记】【StackTrace】
第二章 【C#学习笔记】【Attribute】
第三章 【C#学习笔记】【Interface】
第四章 【C#学习笔记】【GUID】
第五章 【C#学习笔记】【Virtual】



前言

关于C#中虚方法(virtual)详解,与之关联的接口(interface)已经有介绍了,还有抽象类(abstract)和多态我们将在后面的文章中再作详细讲解。


一、virtual介绍

当有一个定义在类中的函数需要在继承类中实现时,可以使用虚方法(virtual);
虚方法是使用关键字virtual声明的,虚方法可以在不同的继承类中有不同的实现,即为基类中定义的允许在派生类中重写的方法。

二、虚方法的使用

2.1.声明形式

class Person
{
	  //访问修饰符 virtual关键字 函数返回类型 函数名(参数表){函数体};
    public virtual void IDentity()
    {
        Console.WriteLine("我是一个人");
    }
}

2.2.调用方法

在调用上,使用子类构造的对象调用虚方法,就会调用子类的方法,使用父类构造的对象,就会调用父类的方法;
在基类中声明的虚方法一般在派生类中对其进行调用,会运用到base关键字
当输入访问修饰符和override后,系统会弹出我们刚才编写的虚方法,直接选择自动生成

class Person
{
    public virtual void IDentity()
    {
        Console.WriteLine("我是一个人");
    }
}
class Boy:Person
{
    public override void IDentity()
    {
        base.IDentity();
    }
}
static void Main(string[] args)
{
    Person person = new Person();
    person.IDentity();  
    Boy boy = new Boy();
    boy.IDentity();
}

2.3.规则解析

1、虚拟类其实指的是正常类中的虚方法,所以虚拟类可以直接使用实例,这是与抽象类、接口不同的;
2、虚拟方法是在方法前加virtual关键字,对方法进行声明,说明这个方法是虚方法,调用时使用override关键字和base关键字,说明是调用虚方法;
3、虚拟函数和正常函数无区别
4、子类继承虚拟类可以实现虚方法也可以不实现虚拟方法;
5、虚方法可以在不同的继承类中有不同的实现;
6、要注意,只有为虚方法是可以进行重写,不能对非虚方法进行重写;
7、当使用virtual关键字修饰后,不允许再有static、abstract、override修饰符;

三、虚方法的好处作用

当在基类中进行虚方法的定义以后,在派生类中可以对其方法进行调用,而且可以通过重写来改变其中实现的功能来实现自己的一些功能,如果不是虚方法,则必须要重新声明方法在进行自己想要的功能进行编写再进行调用,但是虚方法只需要在派生类中对其进行调用;如果想实现其他的功能可以对其进行方法等的重写,进而实现自己想要的功能,调用基类的虚方法来执行派生类的具体操作。在基类调用时,并不需要知道派生类是怎么实现的,因为不同的派生类实现的方式可能不一样,但调用的方式是一样的,实现了不同的功能;

总结作用:
1、允许子类/派生类进行重写;
2、增加代码的可维护性,脉络更加清晰有条理;

总结

不积硅步,何以至千里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值