例一:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace VirtualMethod{ class Program { static void Main(string[] args) { Base b1 = new Derived(); b1.Start();//輸出什么? b1.Stop();//輸出什么? b1.Turn();//輸出什么? } } public interface IVehicle { void Start(); void Stop(); void Turn(); } public class Base : IVehicle { public void Start() { Console.WriteLine("a"); } public void Stop() { Console.WriteLine("b"); } public void Turn() { Console.WriteLine("c"); } } public class Derived : Base, IVehicle { void IVehicle.Start() { Console.WriteLine("d"); } public void Stop() { Console.WriteLine("e"); } public void Turn() { Console.WriteLine("f"); } }}例二:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace VirtualMethod{ class Program { static void Main(string[] args) { ReallyDerived r1 = new ReallyDerived(); Derived r2 = r1; Base r3 = r1; ICommon r4 = r1; r1.Doit();//輸出什么? r2.Doit();//輸出什么? r3.Doit();//輸出什么? r4.Doit();//輸出什么? } } public interface ICommon { void Doit(); } public class Base : ICommon { void ICommon.Doit() { Console.WriteLine("a"); } public virtual void Doit() { Console.WriteLine("b"); } } public class Derived : Base, ICommon { void ICommon.Doit() { Console.WriteLine("c"); } public new virtual void Doit() { Console.WriteLine("d"); } } public class ReallyDerived : Derived { public override void Doit() { Console.WriteLine("e"); } }}
請問標(biāo)記為“輸出什么?”的各個語句輸出什么?請給出原因或分析,謝謝了!
- 1 回答
- 0 關(guān)注
- 356 瀏覽
添加回答
舉報
0/150
提交
取消