-2
 class Base
    {
        public virtual void Method()
        {
            Console.WriteLine("Base method");
        }
    }
    class Derived : Base
    {
        public override void Method()
        {
            Console.WriteLine("Derived method");
        }
    }
    class MyClient
    {
        public static void Main()
        {

            Base b1 = new Derived();
            b1.Method(); // Displays 'Base Method' 
           Console.ReadLine();
        }
    } 

输出应该是什么?

它是怎么来的?请解释

4

2 回答 2

1

输出应该是,并且,`Derived Method。

因此,即使您引用b1为 a Base,运行时也知道它实际上是一个实例,Derived并将使用后者的实现。

于 2013-04-19T07:49:13.120 回答
0

它将显示“派生方法”。现在来看代码,你到底在做什么。看到你正在使用类构造函数Class Myclient创建一个类的对象。所以运行时将通过类,并创建一个类的实例。结果将是“派生方法”BDerivedderivedderived

于 2013-04-19T08:01:09.140 回答