virtual 和 override关键字
来源:互联网 发布:01底层数据读取错误率 编辑:程序博客网 时间:2024/05/21 06:56
<span style="font-family:KaiTi_GB2312;font-size:24px;">一:字面理解:</span>
virtual:adj.实质上的;(计算机)虚拟的,虚像的;
override:vt.推翻,无视,覆盖,优先于;
从字面上,我们就可以大概猜测出virtual和override关键字在c#中的作用了,光猜测还是不够,要有所落实。
二:概念比对:
virtual关键字:
(在基类中使用)用于修饰方法,属性,索引器或事件声明,并且允许在派生类中重写这些对象。
override关键字:
(在派生类中使用)要扩展或修改继承的方法,属性,索引器或事件的抽象实现或虚实现,必须使用override修饰符。
对比:我们可以发现,它们两个关键字是相对使用的,方法重写必须要有override关键字,但基类需满足是抽象方法abstract或虚拟方法virtual就行。
三:备注比对:
virtual:
1)默认情况下,方法是非虚拟的,不能重写非虚拟方法。
2)virtual修饰符不能与static,abstract,private,或override修饰符一起使用。
3)除了声明和调用语法不同外,虚拟方法和抽象方法是一样的。(这里其实可以上网看看虚拟方法和抽象方法比较)
override:
1) 不能重写非虚方法或静态方法,重写的基类必须是virtual,abstract。
2)override修饰符不能用new,static,virtual修饰符来修饰。
四:实例大战:
<span style="font-family:KaiTi_GB2312;">using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace JIA{ class Program { static void Main(string[] args) { Person jia = new student(); jia.Print(); } } //创建基类Person abstract public class Person { public virtual void Print() { Console.WriteLine("你好"); } } //创建派生类student public class student : Person { public override void Print() { Console.WriteLine("这是学生"); Console.ReadLine(); } }}</span>
运行结果如下:
0 0
- virtual 和 override关键字
- C#中的virtual,abstract,override和new关键字小结
- Virtual和 Override用法
- Virtual、override和new
- virtual和override
- C# virtual和override
- new , virtual , override关键字的说法
- C#关键字abstract virtual interface new override
- C#之virtual override new关键字
- override,overload,dynamic,virtual,abstract,reintroduce关键字
- 关键字virtual,override,new的使用
- C# 关键字 abstract, virtual, override, sealed, new
- virtual和override(C#)
- abstract、virtual、override 和 new
- 多态 override virtual 和Tostring
- abstract、virtual、override 和 new
- virtual方法和override方法
- C#里virtual和override
- Android 根据系统时间设置显示上下午时间
- 面试常见的问题
- linux android
- Android 判断运行环境(ART or Dalvik)
- 第13周 项目5-10 合并数组
- virtual 和 override关键字
- Android - Android项目解析
- IOS中数组的使用(NSArray, NSSet, NSDictionary)
- IOS开发---C语言-㉒typedef的使用
- PHP 登录与验证示例
- FireFox扩展插件
- C++变长参数模板
- iTerm2工具
- ios 集合视图(九宫格布局)