当我使用以下代码时,它不会让我交战。
class Employee
{
public string FName;
public string LName;
public void Print()
{
Console.WriteLine(FName + " " + LName);
}
}
class FullTimeEmployee : Employee
{
public void Print()
{
Console.WriteLine(FName + " " + LName + " - From FullTimeEmployee Class . . .");
}
}
class PartTimeEmployee : Employee
{
}
class Program
{
static void Main()
{
FullTimeEmployee FTE = new FullTimeEmployee();
FTE.FName = "FullTime";
FTE.LName = "Employee";
FTE.Print();
PartTimeEmployee PTE = new PartTimeEmployee();
PTE.FName = "PartTime";
PTE.LName = "Employee";
PTE.Print();
Console.Read();
}
}
但当我公开员工阶级时,这表明。。警告"FullTimeEmployee.Print()"隐藏继承的成员"Employee.Print()"。如果要隐藏,请使用new关键字。为什么这样。。。。???
使用虚拟和覆盖。通过这种方式,可以用子类方法覆盖父类方法。或者您可以在子类方法之前使用新的运算符隐藏它
class Employee
{
public string FName;
public string LName;
public virtual void Print()
{
Console.WriteLine(FName + " " + LName);
}
}
class FullTimeEmployee : Employee
{
public override void Print()
{
Console.WriteLine(FName + " " + LName + " - From FullTimeEmployee Class . . .");
}
}
class PartTimeEmployee : Employee
{
}
class Program
{
static void Main()
{
FullTimeEmployee FTE = new FullTimeEmployee();
FTE.FName = "FullTime";
FTE.LName = "Employee";
FTE.Print();
PartTimeEmployee PTE = new PartTimeEmployee();
PTE.FName = "PartTime";
PTE.LName = "Employee";
PTE.Print();
Console.Read();
}
}