美文网首页
15-01-方法隐藏和方法重写

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

作者: D丝学编程 | 来源:发表于2021-04-08 16:58 被阅读0次

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

    (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();  //此处打印"医生的工作是看病!"
    

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

    相关文章

      网友评论

          本文标题:15-01-方法隐藏和方法重写

          本文链接:https://www.haomeiwen.com/subject/jyzlxltx.html