强制类性转换
kdymh 2008-04-17 09:09:11 using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication3
{
public class BaseClass
{
public void DoWork() { Console.WriteLine("baseclass.speak"); }
public int WorkField;
public int WorkProperty
{
get { return 0; }
}
}
public class DerivedClass : BaseClass
{
public new void DoWork() { Console.WriteLine("derivedclass.speak"); }
public new int WorkField;
public new int WorkProperty
{
get { return 0; }
}
}
class Program
{
static void Main(string[] args)
{
DerivedClass B = new DerivedClass();
B.DoWork(); // Calls the new method.
BaseClass A =(BaseClass)B;
A.DoWork(); // Calls the old method.
}
}
}
如果
BaseClass A =(BaseClass)B;
不强制类转换,
而是
BaseClass A =B;
它也会调用基类方法,为什么???