using System;class Parent{ public void Msg() { Console.WriteLine("Parent"); }}class Child : Parent { }class Program{ static void Main() { Parent ObjParent = new Parent(); Child ObjChild = new Child(); ObjParent.Msg(); //Parent ObjChild.Msg(); //Parent Console.ReadKey(); }}覆盖:
using System;class Parent{ public virtual void Msg() { Console.WriteLine("Parent"); }}class Child : Parent { public override void Msg() { Console.WriteLine("Child"); }}class Program{ static void Main() { Parent ObjParent = new Parent(); Child ObjChild = new Child(); ObjParent.Msg(); //Parent ObjChild.Msg(); //Child Console.ReadKey(); }}多态:
using System;class Parent{ public virtual void Msg() { Console.WriteLine("Parent"); }}class Child1 : Parent { public override void Msg() { Console.WriteLine("Child_1"); }}class Child2 : Parent{ public override void Msg() { Console.WriteLine("Child_2"); }}class Program{ static void Main() { Parent Obj1 = new Child1(); Parent Obj2 = new Child2(); Obj1.Msg(); //Child_1 Obj2.Msg(); //Child_2 Console.ReadKey(); }}隐藏:
using System;class Parent{ public void Msg() { Console.WriteLine("Parent"); }}/* 有意隐藏应使用 new 关键字 */class Child1 : Parent { new public void Msg() { Console.WriteLine("Child_1"); }}/* 无意隐藏会有提示, 但可用 */class Child2 : Parent{ public void Msg() { Console.WriteLine("Child_2"); }}class Program{ static void Main() { Parent Obj1 = new Child1(); Parent Obj2 = new Child2(); Child1 Obj3 = new Child1(); Child2 Obj4 = new Child2(); Obj1.Msg(); //Parent Obj2.Msg(); //Parent Obj3.Msg(); //Child_1 Obj4.Msg(); //Child_2 Console.ReadKey(); }}