【发布时间】:2015-04-20 12:22:46
【问题描述】:
我有这个代码:
namespace ConsoleApplicationDemo
{
class base
{
public virtual void Sum()
{
Console.WriteLine("Sum in base ");
}
}
class Program:base
{
public override void Sum()
{
Console.WriteLine("SUM IN Program ");
}
static void Main(string[] args)
{
base A2 = new Program();
A2.Sum();
Program P2 = new Program();
P2.Sum();
Console.ReadLine();
}
}
}
得到OutPUT:SUM IN Program SUM IN Program
我的问题是为什么基类 Sum FunCtion 没有被这段代码调用?
base A2 = new Program();
A2.Sum();
【问题讨论】:
-
因为多态性。你必须做 base A2 = new base() 才能得到你想要的结果。
-
你不能有一个名为
base的类。它是一个保留字。试试Base或@base -
阅读link
-
最好完全使用另一个词而不是base
标签: c# .net function overriding virtual