C#中virtual 方法和abstract方法的区别

简介:     在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别。二者都牵涉到在派生类中与override的配合使用。 一、Virtual方法(虚方法)      virtual 关键字用于在基类中修饰方法。

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


一、Virtual方法(虚方法)


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

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

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


二、Abstract方法(抽象方法)


     abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。

相关文章
|
2月前
|
Java 调度 C#
C#学习系列相关之多线程(一)----常用多线程方法总结
C#学习系列相关之多线程(一)----常用多线程方法总结
|
2月前
|
C#
C#学习相关系列之yield和return的区别
C#学习相关系列之yield和return的区别
|
2月前
|
C#
C#学习相关系列之数组---常用方法使用(二)
C#学习相关系列之数组---常用方法使用(二)
|
2月前
|
C#
C#系列之ref和out的区别
C#系列之ref和out的区别
|
6天前
|
程序员 C#
C#抽象类和抽象方法详解
C#抽象类和抽象方法详解
9 0
|
6天前
|
C#
c#一文读懂continue、return、break区别
c#一文读懂continue、return、break区别
8 0
|
6天前
|
存储 开发框架 .NET
C#中将DataTable转化成ListT的方法解析
C#中将DataTable转化成ListT的方法解析
8 0
|
7天前
|
数据采集 前端开发 数据挖掘
Fizzler库+C#:从微博抓取热点的最简单方法
本文介绍如何使用Fizzler库和C#构建微博热点信息爬虫。通过Fizzler的CSS选择器定位关键信息,提取热点标题和排名,实现微博内容的智能挖掘。示例代码展示单线程和多线程采集方法,并涉及代理IP使用。
Fizzler库+C#:从微博抓取热点的最简单方法
|
8天前
|
存储 数据采集 API
C# GetField 方法应用实例
C# GetField 方法应用实例
|
8天前
|
JSON 安全 API
C# GetMethod 方法应用实例
C# GetMethod 方法应用实例