1. New New 就是为了抹掉父类的方法和属性. 比如父类的某一个public的方法你不想让他在子类中起作用或者是起其他的作用. using System;namespace MyName { class Useit {
public static void Main() { A1 a1 = new A1(); a1.Fun(); Console.ReadLine(); } } public class A { public void Fun() { Console.WriteLine("Fun A"); } } public class A1:A { public new void Fun() { Console.WriteLine("Fun A1"); } }2.override是重写,父类对应的父方法必须是虚拟的、抽象的或重写的。 参考: using System;namespace MyName { class Useit {
public static void Main() { A2 a2 = new A2(); a2.Fun(); Console.ReadLine(); } } public class A { public virtual void Fun() { Console.WriteLine("Fun A"); } } public class A2:A { public override void Fun() { Console.WriteLine("Fun A2"); } } }请同时参考MSDN: new ms-help://MS.VSCC/MS.MSDNVS.2052/csref/html/vclrfNewOpPG.htm#vclrfnew_newmodifier overide ms-help://MS.VSCC/MS.MSDNVS.2052/csref/html/vclrfOverridePG.htm
New 就是为了抹掉父类的方法和属性. 比如父类的某一个public的方法你不想让他在子类中起作用或者是起其他的作用.
using System;namespace MyName
{ class Useit
{
public static void Main()
{
A1 a1 = new A1(); a1.Fun(); Console.ReadLine();
}
} public class A
{
public void Fun()
{
Console.WriteLine("Fun A");
}
} public class A1:A
{
public new void Fun()
{
Console.WriteLine("Fun A1");
}
}2.override是重写,父类对应的父方法必须是虚拟的、抽象的或重写的。
参考:
using System;namespace MyName
{ class Useit
{
public static void Main()
{
A2 a2 = new A2(); a2.Fun(); Console.ReadLine();
}
} public class A
{
public virtual void Fun()
{
Console.WriteLine("Fun A");
}
} public class A2:A
{
public override void Fun()
{
Console.WriteLine("Fun A2");
}
}
}请同时参考MSDN:
new
ms-help://MS.VSCC/MS.MSDNVS.2052/csref/html/vclrfNewOpPG.htm#vclrfnew_newmodifier
overide
ms-help://MS.VSCC/MS.MSDNVS.2052/csref/html/vclrfOverridePG.htm