C#中抽象方法与虚拟方法的区别
程序员文章站
2023-12-22 10:53:16
学过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#程序设计能有所帮助。