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

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

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

二、Abstract方法(抽象方法)

abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现,只需要一个方法的签名+”;“加”{}“,抽象方法的实现必须在派生类中使用override关键字来实现。

三、virtual:用于父类中声明该方法可被重写(其父类也可以是抽象类)。

存在抽象方法的类一定是抽象类,但抽象类中可以无抽象方法。继承抽象类的派生类一定要实现基类的抽象方法。这一点是和虚方法不同的。

转载于:https://www.cnblogs.com/flyer/archive/2009/03/02/1401792.html

virtual方法(虚方法)与abstract(抽象方法)的区别相关推荐

  1. java虚方法和抽象方法_虚方法和抽象方法--基础回顾

    抽象方法是只有定义.没有实际方法体的函数,它只能在抽象函数中出现,并且在子类中必须重写:虚方法则有自己的函数体,已经提供了函数实现,但是允许在子类中重写或覆盖. 重写的子类虚函数就是被覆盖了. 抽象方 ...

  2. 抽象方法和虚方法的区别 [C#]

    1.(abstract)抽象方法和(virtualt)虚方法的区别在于:虚方法有一个实现部分可以被子类继承,从而使子类获得和基类相同的方法,另外也为派生类提供了覆盖该方法的选项.相反,抽象方法没有提供 ...

  3. 重写方法,重载方法,虚方法和抽象方法的使用

    重写方法,重载方法,虚方法和抽象方法. 重写:指子类重新实现父类的某些方法,以实现一些新的功能.重写的关键字是override.并且重写的方法其签名是相同的. 重载:指允许类中具有相同函数名的方法,但 ...

  4. C#中虚方法(virtual)详解

    前言;在前面的博客重写中提到了虚方法和抽象类,本博文详细介绍下虚方法: 目录: 一.虚方法的定义: 二.虚方法的声明: 三.虚方法的调用: 四.虚方法的规则: 五.虚方法注意事项: 六.虚方法的好处: ...

  5. C# 多态(接口、虚方法、抽象类)的理解

    这几天正在做GDI+的一个练习程序,参考了<VC#.NET开发交互式CAD系统>这本书,书中的参考方法创建了许许多多的类和一个接口.开始我还在想接口有啥作用啊?是不是有点多此一举.然后就去 ...

  6. 多态的两种种实现方式(虚方法,抽象类)

    今天有又是苦逼的一天,准备考研,但是英语是真拉,废话不多开始今天主题--多态 多态 前言 一.虚方法 语法 二.抽象类 语法 实例 无方法和空实现 抽象类的特点 抽象类和虚方法的区别及各自使用时机 区 ...

  7. C#中实现多态的三种方式:抽象类,虚方法,接口

    Interface(接口):是一种规则,要求继承类必需实现所有声明的成员,方法是公开的. Virtual方法(虚方法):可以在继承类里 Override覆盖重新的方方法,有自己的方法体.派生类可使用, ...

  8. c# 多态实现_虚方法

    实现方法: 虚方法, 抽象类, 接口 1.虚方法 将父类的方法标记为虚方法,使用关键字virtual,这个方法可以被子类重新写一遍. 在父类的方法前面加上一个virtual,在子类的方法前面加上一个o ...

  9. SV 类的虚方法 多态

    SV 类的虚方法 多态 类型转换 概述 概述 类的成员方法可以加修饰词virtual(虚方法) 虚方法是一种基本的多态结构 一个虚方法可以覆盖基类的同名方法 在父类和子类中声明虚方法,其方法名.参数名 ...

  10. 虚方法(virtual)和抽象方法(abstract)的区别

    虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢? 1. 虚方法必须有实现部分,抽象方法没有提供实现部分,抽象方法是一种强制派生类覆盖的方法,否则派生类将不能被实例化.如: //抽象方法 pu ...

最新文章

  1. Windows or Linux
  2. 在普通Java类里使用spring里注入的service、dao等
  3. Arm64中的异常处理
  4. mount:在/dev/sr0上找不到媒体
  5. java excel sheet页_Java导出Excel Sheet页
  6. 实例10:python
  7. wsl用户帐户没有必要的权限_Windows的Linux子系统(WSL)即将带来图形化应用
  8. ref: 九大数据仓库方案特点比较
  9. SQL Server 数据库之生成与执行 SQL 脚本
  10. 各大市场应用上架整理
  11. python 10的次方_python e次方
  12. 智慧城市:大数据运营中心 IOC —— Web GIS 地图应用
  13. 借势氢能源发展热潮,重塑股份持续加速行业布局
  14. CSS 属性 aspect-ratio
  15. 动量(momentum),学习率衰减
  16. CSS实验案例02简单专业介绍网页
  17. 详细介绍CoinList 2022 年夏季种子项目, web3概念最亮眼!
  18. 统计假设检验中的P值及置信区间理解
  19. MineCraft - 创世神插件
  20. java基础知识大端模式及其小端模式处理

热门文章

  1. Redis三种特殊类型
  2. List接口的三大实现类比较
  3. 架构 php_十年PHP架构师的成长之路,程序员必备
  4. Redis学习笔记--Redis数据过期策略详解
  5. Win7系统下hosts文件修改后无法保存
  6. 012_Java操作FastDFS
  7. 淮阴工学院研究生计算机,先鸣论坛第六期/考研加油站(五)|2017届淮阴工学院计算机学院考研最高分王杰和你一起分享他的考研经验...
  8. antdesign 所兼容的浏览器_Edge 87.0最新离线稳定版浏览器
  9. linux看门狗树莓派,给树莓派安装看门狗
  10. Android多媒体开发