`
sangei
  • 浏览: 337171 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

C# virtual 作用

阅读更多

一、Virtual方法(虚方法)

     virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:

     情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。

     情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。

二、Abstract方法(抽象方法)

     abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。

 

一个生动的例子 :老爸表示基类(被继承的类) 儿子表示子类(继承的类)
老爸用virtual告诉儿子:"孩子,你要继承我的事业,在这块上面可以自己继续发展你自己的"
儿子用override告诉全世界:"这个我可不是直接拿我爸的,他只是指个路给我,是我自己奋斗出来的"

abstract:抽象方法声明使用,是必须被派生类覆写的方法,抽象类就是用来被继承的;可以看成是没有实现体的虚方法;如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法;抽象类不能有实体的。

 

virtual:标记方法为虚方法
1.可在派生类中以override覆盖此方法
2.不覆盖也可由对象调用
3.无此标记的方法(也无其他标记),重写时需用new隐藏原方法
abstract 与virtual : 方法重写时都使用 override 关键字
接口定义以大写字母I开头。方法只定义其名称,在C#中,方法默认是公有方法;用public修饰方法是不允许的,否则会出现编译错误;接口可以从别的接口继承,如果是继承多个接口,则父接口列表用逗号间隔。
接口可以通过类来实现,当类的基列表同时包含基类和接口时,列表中首先出现的是基类;类必须要实现其抽象方法;

分享到:
评论

相关推荐

    C#虚方法Virtual+详解 很详细的哦

    在C#编程语言中,虚方法(Virtual Methods)是一个重要的面向对象特性,它允许子类重写父类的方法实现,从而实现多态性。本文将深入探讨C#中的虚方法,包括其概念、语法、使用场景以及与非虚方法、抽象方法、接口等...

    C#虚方法(Virtual)详解

    在C#编程语言中,虚方法(Virtual)是一种关键特性,允许子类重写父类的行为。虚方法的概念在于动态绑定,即在运行时根据对象的实际类型决定调用哪个方法,而不是在编译时就已经确定。这使得面向对象编程中的多态性...

    Virtual-Print-generate-PDF.rar_c# PostScript_c# virtual print_po

    在提供的压缩包文件"Virtual Print generate PDF VS2005 C # sample code"中,可能包含了实现以上步骤的示例代码。通过研究和理解这些代码,开发者可以快速掌握如何在C#环境中构建自己的虚拟打印机,将任意文档转换...

    c#中@的3种作用

    以前只知道@在C#中为了写文件路径的\不要加转义符而在前面加上@标识符,没想到@还有其他的作用 1.忽略转义字符 例如 string fileName = D:\\文本文件\\text.txt; 使用@后 string fileName = @D:\文本文件\text.txt; ...

    C#实现基于VLC实现的简易音乐播放器.zip

    C#实现基于VLC实现的简易音乐播放器,可作为毕业设计、课程设计、期末大作业等。C#实现基于VLC实现的简易音乐播放器,可作为毕业设计、课程设计、期末大作业等。C#实现基于VLC实现的简易音乐播放器,可作为毕业设计...

    VirtualTreeview

    "VirtualTreeview"是.NET框架2.0及更高版本中常用的一种高级树形视图控件,它在Windows Forms应用程序中被广泛采用,为开发者提供了更强大和灵活的树状数据展示功能。与标准的TreeView控件相比,VirtualTreeview具有...

    VirtualKeyboard.rar

    在这个“VirtualKeyboard.rar”压缩包中,包含了一个用C#编程语言编写的虚拟键盘用户控件,方便开发者集成到自己的应用程序中。 C#是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows桌面应用、游戏开发...

    override abstract virtual interface比较

    C# 中 override、abstract、virtual、interface 的比较 在 C# 编程语言中,override、abstract、virtual、interface 是四个关键字,它们之间存在着紧密的联系,我们经常会遇到 override、abstract、virtual 这三个...

    深入理解C# abstract和virtual关键字

    代码如下: class A { public virtual void Func() // 注意virtual,表明这是一个虚拟函数 { Console.WriteLine(“Func In A”); } } class B : A // 注意B是从A类继承,所以A是父类,B是子类 { public override void ...

    C# 利用VISA控制测试仪器

    本篇文章将详细探讨如何使用C#结合VISA(Virtual Instrument Software Architecture)来实现对测试仪器的控制。 首先,VISA是一种标准接口,由国家仪器公司(National Instruments,简称NI)开发,用于与各种硬件...

    c#中的interface abstract与virtual介绍

    C#中的`interface`、`abstract`和`virtual`是面向对象编程中的关键概念,它们在定义类的行为和结构方面起着重要作用。 首先,`interface`是C#中的一种规范,它定义了一组方法签名,但不提供具体实现。这意味着任何...

    labview与C#应用程序的通讯.zip_c#labview式开发_labview tcp c#_labview与C#_lab

    LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美国国家仪器公司(NI)开发的一款图形化编程环境,主要用于创建数据采集、测试测量和控制系统。而C#是一种由微软开发的面向对象的编程语言,广泛...

    C#考试题目大全C#考试题目大全

    11. **虚方法(Virtual Method)**:`virtual`关键字允许在派生类中重写或覆盖基类的方法,以便实现多态性。 12. **Params 关键字**:`params`关键字用于定义方法参数,允许传递可变数量的参数。在这种情况下,`...

    一个基于C#+ASP.NET实现的类似Virtual Earth控件源码

    "一个基于C#+ASP.NET实现的类似Virtual Earth控件源码" 这个标题揭示了我们讨论的核心技术:C#编程语言、ASP.NET框架以及一个仿制微软Virtual Earth的地图控件。Virtual Earth是微软早年提供的一个在线地图服务,它...

    C# 版VNC、远程连接

    C# 版VNC(Virtual Network Computing)是一种基于C#编程语言实现的远程桌面控制软件,它允许用户通过网络从一个计算机上访问和控制另一台计算机的桌面环境。VNC技术的核心是通过远程帧缓冲协议(RFB)来实现屏幕...

    C# 封装COM组件源码

    接口的定义应遵循COM规则,例如,接口必须是`public`,`interface`关键字后跟大写字母I,所有方法都应该是`public`,`virtual`,`abstract`,并且没有`out`参数。 ```csharp [Guid("YOUR_GUID_HERE")] public ...

    C# VISA_LAN连接

    本主题关注的是如何使用C#编程语言通过VISA(Virtual Instrument Software Architecture)和LAN(Local Area Network)来与硬件设备进行通讯。VISA是一种标准化的软件接口,允许程序与各种仪器设备进行交互,而LAN则...

    C# 语言规范 版本5.0中文.pdf

    例如,virtual和override关键字的独立使用,方法重载的规则,以及显式接口成员声明,都是为了支持版本控制。 C#的程序结构从简单的"Hello, world"程序开始,包括程序入口点、命名空间和类的定义。类型和变量是编程...

    精通Visual C#2005 PDF

    《精通Visual C#2005》是一本深入讲解C#编程语言的书籍,特别针对Microsoft的Visual C# 2005版本进行了详细的阐述。这本书不仅覆盖了C#的基础语法,还深入探讨了该语言在实际开发中的高级特性和应用。通过阅读此书,...

Global site tag (gtag.js) - Google Analytics