可能重複:
C# optional parameters on overridden methods而overidding基本方法,爲什麼默認參數不能正常工作?
using System;
namespace Apple
{
class A
{
public virtual void Func(int a=4){
Console.WriteLine(" A Class: "+a);
}
}
class B : A
{
public override void Func(int a = 12)
{
Console.WriteLine(" B Class: "+ a);
}
}
public class Program
{
static void Main(string[] args)
{
A ob = new B();
ob.Func();
Console.ReadLine();
}
}
}
// Output: B Class: 4
OB僅僅是基類的引用,其實際持有B類的實例,這是動態調度的概念。 –