c#多态用法

闲来无事,研究下C#种NEW,override用法,看了DEMO后,明白了许多

 

class myFirst { int value_myFirst; public myFirst(int f) { value_myFirst = f; } public void f1() { System.Console.WriteLine("myFirst.f1()!"); } public virtual void f2() //virtual也可以提到最前面 { System.Console.WriteLine("myFirst.f2()!"); } } class mySecond : myFirst { int value_mySecond; public mySecond(int s) : base(s) { value_mySecond = s; } //使用关键字new覆盖基类中的同名方法 public new void f1() //new也可以提到最前面 { System.Console.WriteLine("mySeconde.f1()!"); } ////基类函数中声明是virtual,必须用override覆盖。 public override void f2() //override也可以提到最前面 { System.Console.WriteLine("mySeconde.f2()!"); } } class Program { static void Main(string[] args) { myFirst mf = new myFirst(1); mySecond ms = new mySecond(2); mf.f1(); mf.f2(); ms.f1(); ms.f2(); mf = ms; //向上转型之后 mf.f1(); //myFirst.f1()! mf.f2();//mySeconde.f2()! 这是用override的运行结果; Console.ReadLine(); } }

你可能感兴趣的:(String,C#,Class)