`
sangei
  • 浏览: 329020 次
  • 性别: 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+详解 很详细的哦 京华志&精华志出品 希望大家互相学习,互相进步 支持CSDN 支持微软

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

    C#编写的用PostScript模拟打印成一个文件,生成一个虚拟打印机,将文件输出到该虚拟打印机就生成了一个PDF文件

    C#虚方法(Virtual)详解

    用一个生动的例子和程序段详细的说明了虚方法的用法,有助于理解

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

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

    c#中@的3种作用

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

    深入理解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 ...

    VirtualKeyboard.rar

    虚拟键盘已封装成用户控件可以随意调用,使用C#编写支持字母和数字

    VirtualTreeview

    Treeview控件,.net2.0 .net下载列表控件

    override abstract virtual interface比较

    override abstract virtual interface比较

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

    C# 的设计在某些方面直接考虑到版本控制的需要,其中包括单独使用的 virtual 和 override 修 饰符、方法重载决策规则以及对显式接口成员声明的支持。 本章的其余部分将描述 C# 语言的基本特征。尽管后面的章节会...

    c#中的interface abstract与virtual介绍

    abstract 与virtual : 方法重写时都使用 override 关键字,interface中的方法和abstract方法都要求实现

    C# 4.0语言规范

    C# 的设计在某些方面直接考虑到版本控制的需要,其中包括单独使用的 virtual 和 override 修饰符、方法重载决策规则以及对显式接口成员声明的支持。 本章的其余部分将描述 C# 语言的基本特征。尽管后面的章节会更为...

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

    一个基于C#+ASP.NET实现的类似Virtual Earth控件源码,采用C#+VS2005开发。

    Visual C# 2010程序设计教程(教程PPT+源代码)

    8.2.3 方法的继承与virtual、override及new关键字 8.2.4 sealed关键字与密封类 8.2.5 Abstract关键字与抽象类 8.3 多态性 …… 第9章 泛型 第10章 Windows窗体应用程序开发 第11章 C#数据库编程与ADO.NET 第12章 ...

    C# WinForm ListView虚拟模式加载数据 提高加载速度

    C# WinForm ListView在虚拟模式下,从缓冲之中获取所需的数据进行加载,性能会有很大提高。步骤:(1)必须设置VirtualMode为true并设置VirtualListSize大小;(2)绑定该事件RetrieveVirtualItem(3)如果中间更新了数据...

    精通Visual C#2005 PDF

    精通Visual C#2005 高清非扫描,讲述了Visual C#2005 的相关知识概念,非常不错的一本书

    C# Winform使用DataGridView的VirtualMode虚拟模式

    C# Winform使用DataGridView的VirtualMode虚拟模式。 有两种数据类型作为DataGridView的数据源,一种是DataTable,一种是List。有不明白的,欢迎加微信交流:VPAmway。

    虚拟键盘“VirtualKeyBoard”

    1.六十多键的包含完整上下标的简单虚拟键盘。 2.文件中包含两种类型的键盘,一种是form(窗体)类型,一种是control(控件)类型,请按需使用。 3.可切换输入法。 4.可随意按样添加其他按键。...

    c#基础学习问答c#基础学习问答

    c#学习问答 包括: 1.静态变量和非静态变量的区别? 2.const 和 static readonly 区别? 3.extern 是什么意思? 4.abstract 是什么意思? 5.internal 修饰符起什么作用? 6.sealed 修饰符是干什么的? 7.override 和 ...

Global site tag (gtag.js) - Google Analytics