class Number
{
public static int i = 123;
public virtual void ShowInfo()
{
Console.WriteLine("Base Class ----");
}
public virtual void ShowNumber()
{
Console.WriteLine(i.ToString());
}
}
class IntNumber: Number
{
new public static int i = 456;
public new void ShowInfo()
{
Console.WriteLine("Child class ---");
}
public override void ShowNumber()
{
Console.WriteLine("New Number : "+i.ToString());
}
public void MyMethod()
{
Console.WriteLine(111111111);
}
}
就此例而言,ShowInfo是 new 的方法,ShowNumber 是 override 的方法,使用new之后会隐藏父类同名的方法
如果使用 IntNumber 的引用来 实例 IntNumber 类型,毫无疑问会调用 new 之后的方法
使用Number引用来实例 IntNumber 类型,如下图的 IntNumber 的方法表
如果有不理解方法表是什么的,我也帮不了你,我也是从多本书里面才把方法表看全了