虚方法是必须要实现的,只有接口或者抽象方法才没有实现体,什么是实现体,就是方法的那对大括号:下面举例:

public abstract void Fn1();//定义一个抽象方法
public vitrual void Fn2(){  };//定义一个虚方法(那对大括号必须要有,有说明已经实现了该方法,你可以具体定义他要实现的功能,也可以什么都不写)

虚方法是必须实现的,子类可以选择是否重写

抽象方法一定没有实现,而且必须在抽象类中,子类中必须重写。

应用举例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace ConsoleApp2
{class Program : OnlineStepPageBase{static void Main(string[] args) {//Console.WriteLine( Fibonacci(30).ToString());Program p = new Program();p.TestRecipeData();p.Fn1();Console.ReadKey();}public override void TestRecipeData(){base.TestRecipeData();Console.WriteLine("2");}public override void Fn1(){Console.WriteLine("3");}//private static long Fibonacci(int n)//{//    long result = 1;//当n<=2时都返回1//    if (n > 2)            //当n>2时,进行递归计算//    {//        result = Fibonacci(n - 1) + Fibonacci(n - 2);//    }//    return result;//}}public abstract class OnlineStepPageBase{public virtual void TestRecipeData(){Console.WriteLine("1");}public abstract void Fn1();//定义一个抽象方法}
}

运行结果:

----------------------------------------------------------

如果觉得有用,麻烦点击 在看,让更多志同道合的伙伴加入我们的交流群,一起共同进步!

C# 虚方法与抽象方法区别相关推荐

  1. C#类、接口、虚方法和抽象方法-虚拟方法与抽象方法之区别

    虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢? 1. 虚方法必须有实现部分,并为派生类提供了重写该方法的选项.抽象方法没有提供实现部分,抽象方法是一种强制派生类重写的方法,否则派生类将不能 ...

  2. 虚方法和抽象方法的区别

    在查阅资料的过程中,偶然看到了虚方法和抽象方法,对其做个小结. 对比学习: 虚方法必须有实现部分,抽象方法不可以有实现部分: 虚方法可以在派生类中重写也可以不重写,抽象方法必须在派生类中重写: 虚方法 ...

  3. C#~虚方法,虚方法和抽象方法的区别

    虚方法 特点: <1>虚方法必须使用virtual修饰 <2>虚方法同抽象方法(adstract)一样使用override关键字重写 <3>虚方法在子类中可以实现, ...

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

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

  5. C#类、接口、虚方法和抽象方法

    C#类.接口.虚方法和抽象方法 虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢? 1. 虚方法必须有实现部分,并为派生类提供了重写该方法的选项.抽象方法没有提供实现部分,抽象方法是一种强制派 ...

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

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

  7. C#类和接口、虚方法和抽象方法及值类型和引用类型的区别

    1.C#类和接口的区别 接口是负责功能的定义,项目中通过接口来规范类,操作类以及抽象类的概念! 而类是负责功能的具体实现! 在类中也有抽象类的定义,抽象类与接口的区别在于: 抽象类是一个不完全的类,类 ...

  8. C#类、接口、虚方法和抽象方法-抽象类与接口的区别与联系

    C#抽象类和接口之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于抽象类和接口的选择显得比较随意.其实,两者之间还是有很大的区别的.首先,以抽象类的 ...

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

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

最新文章

  1. ubuntu12.04没有输入法。。
  2. 使用IsLine FrameWork开发ASP.NET程序之六—使用ExceptionProcessProvider异常处理框架(下)...
  3. crontab定时任务运行
  4. [再寄小读者之数学篇](2014-11-14 矩阵的应用: 多项式)
  5. JS实现鼠标点击展开/隐藏表格行
  6. Python OOP 项目实践:从农药到吃鸡
  7. 医院管理系统/案列/APP/小程序/网站
  8. 蓝桥杯题库及答案python版_蓝桥杯试题库的历届真题版.doc
  9. 船讯网|爬虫COOKIE重定向反爬处理
  10. CRAFT字符检测算法和SynthText合成文本数据集
  11. html自动分栏,html自适应页面上下左右分栏的处理技巧
  12. SQL Server 设置IP地址登录方法
  13. Linux(Debian11)安装百度网盘
  14. 信用卡还款怎么分期,还款还是要技巧的
  15. pythonshell压缩文件_文件夹压缩成zip格式
  16. @value读取不到数据库配置文件里的值的解决办法
  17. win10 切换用户、注销、睡眠等
  18. Linux 安装Oracle10g
  19. wish新店快速出单的方法
  20. 路由宝刷华硕rt-n14u_如何在2019年取消硬砖路由器的砖块化(以华硕RT-N16为例)

热门文章

  1. 标准MD5 .Net,实现!的对与错!
  2. 模拟输入(ADC-A0)
  3. 4412 字符类设备的设备号
  4. TeaPot 用webgl画茶壶(3) 环境纹理和skybox
  5. 人才是培养的吗? (转)
  6. Kinect开发笔记之三Kinect开发环境配置详解
  7. linux压缩和解压缩_Linux QuickTip:一步下载和解压缩
  8. 50多种在Photoshop中删除图像背景的工具和技术,第3页
  9. 用c语言复制字符串的元音字母,急求:编写程序,将一个字符串中的元音字母复制到另一个字符串,然后输出。...
  10. luoguP4755 Beautiful Pair