15-01-方法隐藏和方法重写

2021-04-08  本文已影响0人  D丝学编程

当子类继承父类后对父类的方法有不同的实现方式,可以通过如下两种方法来实现。

(1)隐藏父类方法。

(2)重写父类方法。

一、隐藏父类方法

//人
class Person   
{
    pub void Work()
    { 
        Console.WriteLine("人在工作!");
    }
}
//定义医生类继承于人类
class Doctor : Person       
{
    public new void Work()  //隐藏父类工作方法
    {
        Console.WriteLine("医生的工作是看病!");
    }
}
Doctor doctor = new Doctor();
doctor.Work();  //此处打印"医生的工作是看病!"

Person person = new Doctor();
person.Work();  //此处打印"人在工作!"

通过以上程序的执行结果可以看出,子类成功的隐藏了父类的方法:

(1)当子类声明+子类实例化的时候调用的是子类的方法。

(2)当父类声明+子类实例化的时候调用的是父类的方法。

二、重写父类方法

class Person
{
    //使用virtual关键字定义虚方法
    public virtual void Work()
    {
        Console.WriteLine("人在工作!");
    }
}
class Doctor : Person
{
    //使用override关键字重写父类的虚方法
    public override void Work()
    {
        Console.WriteLine("医生的工作是看病!");
    }
}
Doctor doctor = new Doctor();
doctor.Work();  //此处打印"医生的工作是看病!"

Person person = new Doctor();
person.Work();  //此处打印"医生的工作是看病!"

通过以上程序执行结果可以看出,子类成功的重写了父类方法,无论是父类的声明还是子类的声明,只要是子类的实例化,调用的一定是子类的方法。

上一篇 下一篇

猜你喜欢

热点阅读