类方法有意隐藏warning



当我使用以下代码时,它不会让我交战。

 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();
}
}

最新更新