当前位置:  编程技术>.net/c#/asp.net

C#中抽象方法与虚拟方法的区别

    来源: 互联网  发布时间:2014-11-02

    本文导语:  学过C#的人应该都知道抽象方法与虚拟方法,而很多初学者对二者之间的区别并不是很了解。今天本文就来分析一下二者之间的区别。并附上实例加以说明。具体分析如下: 一、主要区别: 对于抽象方法,子类必须实现它。 ...

学过C#的人应该都知道抽象方法与虚拟方法,而很多初学者对二者之间的区别并不是很了解。今天本文就来分析一下二者之间的区别。并附上实例加以说明。具体分析如下:

一、主要区别:

对于抽象方法,子类必须实现它。

对于虚拟方法,子类可以重写也可以不重写。

因此,两者约束不同

二、实例代码如下:

/* 声明一个抽象类
* 1.抽象类中可以包含变量
* 2.抽象方法中无法声明方法体
*/
abstract class AbsClass
{  
  string name;
  public abstract void DisplayValue(string value);
}

/*继承抽象类的子类必须实现抽象方法*/
class AbsClassInherited : AbsClass
{
  /*使用override重写实现*/
  public override void DisplayValue(string value)
  {
    Console.WriteLine(value.ToUpper());
  }
}
 /* 声明虚拟函数
 */
class VirtClass
{
  /*声明一个虚拟函数
   虚拟函数必须实现方法体*/
  public virtual void DisplayValue(string value)
  {
    Console.WriteLine(value);
  }
}
/*虚拟方法可以实现也可以不实现*/
class VirtClassInherited : VirtClass
{
  /*使用override重写实现*/
  public override void DisplayValue(string value)
  {
    Console.WriteLine(value.ToUpper());
  }
}

/* 声明一个接口
 * 1.接口中的方法必须是公用的
 * 2.接口中不允许有变量
 * 3.接口中的方法不允许有方法体
 */
interface IAbs
{
  void DisplayValue(string value);
}

希望本文所做的分析对大家的C#程序设计能有所帮助。


    
 
 

您可能感兴趣的文章:

  • C#学习笔记之C#的虚方法
  • C# 静态方法与非静态方法的区别分析
  • C#实现获取枚举中元素个数的方法
  • C#中实现屏蔽Ctrl+C的方法
  • C#逐行读取txt文件的方法
  • C#实现Datatable排序的方法
  • C#键盘输入回车键实现点击按钮效果的方法
  • c#友好显示日期 c#日期datetime使用方法
  • C#实现获取一年中是第几个星期的方法
  • C#中实现抽象类里建立静态方法
  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • c#自带缓存使用方法 c#移除清理缓存
  • C#实现过滤html标签并保留a标签的方法
  • C# WinForm中禁止改变窗口大小的方法
  • c# 方法可变数量的参数
  • C#判断日期是否到期的方法
  • C# WinForm编程获取文件物理路径的方法
  • C# 获取(非)Web程序根目录的可用方法
  • c# ListView实现双击Item事件的变通方法
  • C#实现中英文混合字符串截取的方法
  • apache虚拟机配置步骤和修改访问端口的方法(虚拟机端口映射)
  • 请教不需要网络使虚拟机Virtual PC与主机共享的方法
  • 一个虚拟主机使用多个域名的配置方法(apache)该怎么写?
  • 请教在win2000上虚拟安装linux的方法?
  • 请问大家:我先装windows然后用虚拟机的方法装linux,可是装后,启动linux界面,其下面
  • Java中的虚拟方法virtual method是什么含义?拿来干什么用的?
  • 我想在WINXP下使用LINUX可又不想退出WINXP,我的机子没光驱和软驱,就不能用虚拟机+光盘起动的方法解决,有什么办法啊
  • Android APK文件在电脑(PC虚拟机)上面运行方法
  • 读过内核进来~~访问虚拟内存的方法!
  • 虚拟主机Linux(Ubuntu9.10)连接主机 的路由器Or无限网卡上网方法
  • 虚拟主机中phpMyAdmin的安装配置方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.awt.im类inputcontext的类成员方法: getinputmethodcontrolobject定义及介绍
  • 实现在同一方法中获取当前方法中新赋值的session值解决方法
  • java命名空间java.awt.im.spi接口inputmethod的类成员方法: getcontrolobject定义及介绍
  • 突然想到一个奇怪的问题:如果一个非abstract类中包含一个空方法体(及非Java代码写的方法体是空的)的native方法,编译会通过吗?
  • java命名空间java.lang类runtime的类成员方法: runfinalization定义及介绍
  • 构造方法到底怎么用,构造方法体中可以放些什么东西,它和一般方法有什么本质区别功能上
  • java命名空间java.awt.im.spi接口inputmethod的类成员方法: dispose定义及介绍
  • jquery中slideUp()方法与slideDown()方法
  • java命名空间javax.swing类rowsorter<m>的类成员方法: allrowschanged定义及介绍
  • jquery中fadeIn()方法与fadeOut()方法(示例)
  • java命名空间java.lang类securitymanager的类成员方法: getsecuritycontext定义及介绍
  • 这句话对不对 用final修饰的方法是不能被该类的子类所重载的方法 ?
  • java命名空间java.awt.im.spi接口inputmethod的类成员方法: hidewindows定义及介绍
  • finalize()方法与System.runFinalization()方法有什么区别
  • java命名空间java.beans类statement的类成员方法: execute定义及介绍
  • 关于“创建重载现存方法的方法”
  • java命名空间java.lang类stacktraceelement的类成员方法: getmethodname定义及介绍
  • 关于多线程的奇怪问题,run()方法只会被start()方法自动启动一次吗?
  • java命名空间java.awt.im.spi接口inputmethod的类成员方法: activate定义及介绍
  • append()方法在哪些类里有啊?分别有什么作用?老是看到这个方法
  • java命名空间javax.swing类jcomponent的类成员方法: processcomponentkeyevent定义及介绍
  • servlet的service()方法与doGet()、doPost()方法是什么关系?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3