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#] 虚函数(Virtual),抽象函数(abstract)和接口的区别