先说区别:

virtual意思是虚拟,abstract意思是抽象。

virtual只修饰方法,abstract修饰方法和类。

virtual方法必须有实现,abstract方法必须没有实现。

public abstract void getword();
//abstract后面直接封号。 public virtual void getword()
{
}
//virtual必须是大括号,即便没内容。

virtual方法可以在普通类里,也可以在虚类里,而abstract方法必须在虚类中。(abstract class,虚类只能被继承,不能实例化)

virtual方法可以被重写,abstract方法必须被重写。

共同点:

都是为了实现多态。

子类重写的时候都得加override描述。

感觉abstract跟接口非常相似。对于其差别现在的认识是:

1.接口是为了实现多继承(多实现)。

2.接口是跟类同级别的,不是修饰类和方法的。

3.整个接口中只有类似虚方法的接口方法,不存在公私有域,abstract虚类里面可以有带实现的方法。

平时基本都在用接口,用虚类比较少。

C#中virtual和abstract的区别的更多相关文章

  1. C#中virtual与abstract的区别

    C#中virtual与abstract的区别 C#的virtual & abstract经常让人混淆,这两个限定词都是为了让子类进行重新定义,覆盖父类的定义.但是用法上差别很大. a)     ...

  2. asp.net中virtual和abstract的区别

    这篇文章主要介绍了asp.net中virtual和abstract的区别,较为详细的分析了virtual与abstract的概念与具体用法,并以实例的形式予以总结归纳,需要的朋友可以参考下 本文实例分 ...

  3. asp.net中virtual和abstract的区别分析

    这篇文章主要介绍了asp.net中virtual和abstract的区别,较为详细的分析了virtual与abstract的概念与具体用法,并以实例的形式予以总结归纳,需要的朋友可以参考下 本文实例分 ...

  4. 【转】C#中virtual和abstract的区别

    virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义. 它们有一个共同点:如果用来修饰方法,前面必须添加public,要不然就会出现编译错误:虚拟方法或抽象方法是不能 ...

  5. C#中virtual和abstract区别,举例子

    virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义. 它们有一个共同点:如果用来修饰方法,前面必须添加public,要不然就会出现编译错误:虚拟方法或抽象方法是不能 ...

  6. virtual和abstract的区别和联系

    壹. 相同 他们有些相似.有些场景用哪个都行!   1. 修饰父类.让子类重写 virtual和abstract都是用来修饰父类的,通过覆盖父类的定义,让子类重新定义. 2. 都用必须public 如 ...

  7. c# 中virtual与abstract

    在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别.二者都牵涉到在派生类中与override的配合使用. 一.Virtual方法(虚方法) virtual ...

  8. virtual和abstract的区别

    virtual和abstract都是用来修饰父类的,前面不能用private私有,要不然就会出现编译错误:虚拟方法或抽象方法是不能私有的.  毕竟加上virtual或abstract就是让子类重新定义 ...

  9. java实际项目中interface和abstract interface 区别

    参考:https://zhidao.baidu.com/question/424485344260391052.html 这2种有什么区别,根据实际项目经验 帮我解答下 谢谢啊~~~~~~~~~问题补 ...

随机推荐

  1. Appium小试

    最近有空玩了一下Appium,记录一下 1.下载Appium for windows,现在是0.12.3版本 https://bitbucket.org/appium/appium.app/downl ...

  2. opencv基于HSV的肤色分割

    //函数功能:在HSV颜色空间对图像进行肤色模型分割 //输入:src-待处理的图像,imgout-输出图像 //返回值:返回一个iplimgae指针,指向处理后的结果 IplImage* SkinS ...

  3. python分析log

    最近做的一个项目,系统log下会生成如下的log(部分): [-- ::] Processing File transfer configured from ship to shore.... [-- ...

  4. 学习练习 java数据库查询小题

    10. 查询Score表中的最高分的学生学号和课程号.(子查询或者排序) 11. 查询每门课的平均成绩. 12.查询Score表中至少有5名学生选修的并以3开头的课程的平均分数. 13.查询分数大于7 ...

  5. 华为OJ平台——DNA序列

    题目描述: 一个DNA序列由A/C/G/T四个字母的排列组合组成.G和C的比例(定义为GC-Ratio)是序列中G和C两个字母的总的出现次数除以总的字母数目(也就是序列长度).在基因工程中,这个比例非 ...

  6. android 控件描边取消重叠

    今天写组件的时候用到了描边.可是两个组件放在一起时,描边会变重叠,使之变粗.就不是很美观了. 如何取消呢?网上查了好久没找到,然后就自己试了试,找到了解决方法,就在此记录一下,防止以后忘记. 很简单分 ...

  7. iOS 根据字符串来定位地址

    - (void)viewDidLoad { [super viewDidLoad]; self.geocoder = [[CLGeocoder alloc]init]; // 设置地图可缩放 self ...

  8. jQuery层级元素选择器

    第一个: 1:空格表示所有 2:> 第一层 3:+/- 同级 +:之后的第一个元素 -:之后所有同级 d 代码示例: <!DOCTYPE html PUBLIC "-//W3C/ ...

  9. pthread_cond_wait避免线程空转

    多线程对同一块区域进行操作时,需要定义如下两种类型的变量: pthread_mutex_t xxx; pthread_cond_t yyy; pthread_mutex_t类型的变量,即锁,对公共区域 ...

  10. Linux 不挂载设备,获取设备的文件系统信息

    块设备挂载后,可以通过df 或者 mount命令查看设备的文件系统信息.然而,有时候需要在不挂载设备的情况下予以判断,此时可以使用如下的方法: (1)查看文件系统类型 命令: file -sL /de ...