上面用的方法只是hide继承下来的方法而已,要override,用下列句式:class Employee
{
public virtual void CalculatePay()
{
....
}
}
class ContractEmployee : Employee
{
public override void CalculatePay()
{
...
}
}
class SalariedEmployee : Employee
{
public override void CalculatePay()
{
....
}
}
{
public virtual void CalculatePay()
{
....
}
}
class ContractEmployee : Employee
{
public override void CalculatePay()
{
...
}
}
class SalariedEmployee : Employee
{
public override void CalculatePay()
{
....
}
}
{
emp.CalculatePay();
Console.WriteLine(emp.GetType().ToString());
}
CalculatePay();
所以,这里的emp定义的时候是Employee,得到的类型可以是ContractEmployee,或者SalariedEmployee,但是因为派生类的函数不是
override,所以调用的时候还是父类的CalculatePay().
应该是这样吧?呵呵:)
我觉得应该是ContractEmployee自己的CalculatePay().
我觉得应该是ContractEmployee自己的CalculatePay().
################################################
CSDN閸斺晜澧?Net
娑撳娴囬崷鏉挎絻閿涙ww25.brinkster.com/nluyan/Release.zip