C# 虚方法与抽象方法区别

Posted dotNET编程大全

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 虚方法与抽象方法区别相关的知识,希望对你有一定的参考价值。

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

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# 虚方法与抽象方法区别的主要内容,如果未能解决你的问题,请参考以下文章

C# 虚方法与抽象方法区别

转载 [c#] 虚函数(Virtual),抽象函数(abstract)和接口的区别

C# 抽象方法和虚方法的区别

C#虚方法(Virtual)抽象方法(Abstract),接口(Interface)抽象类的区别

C# 中基类,虚类,抽象类,密封类,接口的区别

OO 抽象方法与虚方法的区别