美文网首页
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-方法隐藏和方法重写

    当子类继承父类后对父类的方法有不同的实现方式,可以通过如下两种方法来实现。 (1)隐藏父类方法。 (2)重写父类方...

  • 2020-07-22 方法的重写与隐藏

    方法重写 vs. 方法隐藏,二者区别? 方法重写:是指在子类中重写父类中定义的对象方法; 方法隐藏:是指在子类中重...

  • Java自学-接口与继承 隐藏

    Java中的方法隐藏 与重写类似,方法的重写是子类覆盖父类的对象方法 隐藏,就是子类覆盖父类的类方法 步骤 1 :...

  • 10.26学习总结

    今天学习了多态和抽象类。 多态学了虚方法、方法的重写,多态和继承的区别,重写和隐藏的区别。 抽象类学了抽象类的方法...

  • 2017 10 26

    今天老师主要讲解了:多态、虚方法、方法重写、多态和继承的区别以及重写和隐藏的区别 多态是不同类型的对象对于同一方法...

  • 静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?

    java中静态属性和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 原因:1). 静态方法和...

  • 方法重载与方法重写(@Overload @Override)

    java方法重载和方法重写(方法覆盖)的区别: 方法重载: Overload 方法重写: Override 批判,...

  • Java面向对象知识点整理

    不定期更新,欢迎指正 1. 重载、重写和隐藏 1). 重载(overload): 方法重载就是多个方法名称相同但是...

  • 10月26日四期C#总结

    今天我们学习了多态、方法重写、重写和隐藏的区别。 override不能改变基类虚函数的访问权限 override不...

  • c#之虚方法与隐藏方法的区别

    虚方法与隐藏方法定义 重写(虚方法):继承时发生,在子类中重新定义父类中的方法,子类中的方法和父类的方法是一样的 ...

网友评论

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

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