分类: 嵌入式
2010-08-19 15:36:44
public class BaseClass
{
public string m_Name = "BaseClass";
public void RealName()
{
Console.WriteLine(m_Name);
}
public virtual void VirtualName()
{
Console.WriteLine(m_Name);
}
}
public class DerivedClass : BaseClass
{
public string m_Name = "DerivedClass";
public void RealName()
{
Console.WriteLine(m_Name);
}
public override void VirtualName()
{
Console.WriteLine(m_Name);
}
}
public class Class2
{
[STAThread]
static void Main(string[] args)
{
BaseClass lBaseclass = new DerivedClass();
lBaseclass.RealName();//return : BaseClass
lBaseclass.VirtualName();//return : DerivedClass
Console.WriteLine("-----------------------");
DerivedClass lDerivedClass = (DerivedClass)lBaseclass;
lDerivedClass.RealName();//return : DerivedClass
lDerivedClass.VirtualName();//return : DerivedClass
Console.WriteLine("-----------------------");
lBaseclass.m_Name = "ModifyByBase";
lBaseclass.RealName();//return : ModifyByBase
lBaseclass.VirtualName();//return : DerivedClass
Console.WriteLine("-----------------------");
lDerivedClass.m_Name = "ModifyByDerived";
lDerivedClass.RealName();//return : ModifyByDerived
lDerivedClass.VirtualName();//return : ModifyByDerived
Console.WriteLine("-----------------------");

lDerivedClass = new DerivedClass();
((BaseClass)lDerivedClass).RealName();//return : BaseClass
((BaseClass)lDerivedClass).VirtualName(); //return : DerivedClass 
Console.ReadLine();
} 
}