而很多初学者对二者之间的区别并不是很了解

时间:2021-12-03 09:14:15

学过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); }