| // Code #01 class Base { public virtual void PrintStatus() { Console.WriteLine("public virtual void PrintStatus() in Base"); } } |
| // Code #02 public void DisplayStatusOf(Base[] bs) { foreach (Base b in bs) } |
| public static XmlReader Create(Stream input); |
| // Code #03 class Derived1 : Base { public override void PrintStatus() { Console.WriteLine("public override void PrintStatus() in Derived1"); } } |
| // Code #04 class Derived2 : Base { public new void PrintStatus() { Console.WriteLine("public new void PrintStatus() in Derived2"); } } |
| Base[] bs = new Base[] { new Base(), new Derived1(), new Derived2() }; |
| // Output #01 // public virtual void PrintStatus() in Base // public override void PrintStatus() in Derived1 // public virtual void PrintStatus() in Base |
| // Code #06 Base d2 = new Derived2(); d2.PrintStatus(); // Output #02 // public virtual void PrintStatus() in Base 而在 Derived2 内部,你可以透过 base 来访问: // Code #07 base.PrintStatus(); |
| // Code #08 interface IFace { void PrintStatus(); } class Base : IFace { public virtual void PrintStatus() { Console.WriteLine("public virtual void PrintStatus() in Base"); } } |
| // Code #09 class Derived2 : Base, IFace { public new void PrintStatus() { Console.WriteLine("public new void PrintStatus() in Derived2"); } } |
| // Code #10 IFace[] fs = new IFace[] { new Base(), new Derived1(), new Derived2(), } |
| // Code #11 public void DisplayStatusOf(IFace[] fs) { foreach (IFace f in fs) } |
| // Output #03 // public virtual void PrintStatus() in Base // public override void PrintStatus() in Derived1 // public new void PrintStatus() in Derived2 |
用户评论