美文网首页
C#中的override和new的区别

C#中的override和new的区别

作者: 住在桃花源 | 来源:发表于2018-04-19 10:40 被阅读0次

       之前做项目很少用到虚方法,并且自己还一直存在一个误解:虚方法只能放在抽象类中。其实虚方法和抽象类没有必然的关系。虚方法可以在抽象类、普通类中。唯一不能存在接口中。

override 是重写父类中用virtual、abstract、override修饰的方法。

new是派生类用来隐藏父类的中的方法的。可以异常基类中的虚方法和普通方法。

下面举例说明:

首先是virtual关键字

People类 Student类 执行

输出 这是Student中的Test

 可以看出没有执行基类中的方法,如果需要执行基类中的方法,加入base.Test()

这次输出

这是People中的Test

这是Student中的Test

下面看new关键字:

new 关键字的输出结果在于new的对象

可以看出来,使用new修饰方法是,当你实例一个派生类,但是指向一个基类的对象,这调用方法是调用基类的方法。也就是说调用实例对象指向的方法。

下面来看override修饰的方法,测试实例对象不同时,会不会返回不同的结果?

参考:https://blog.csdn.net/zx13525079024/article/details/51285265

相关文章

  • C#中new和override的区别

    先看如下实例代码: 输出结果: override即覆盖重写的意思,指子类继承父类后,重写并覆盖了父类的某个方法,子...

  • C#中的override和new的区别

    之前做项目很少用到虚方法,并且自己还一直存在一个误解:虚方法只能放在抽象类中。其实虚方法和抽象类没有必然的关...

  • c#中virtual、override、new的区别

    Virtual 用于父类中,声明某方法可以重写,该方法不能是static; override(覆盖继承) 用于子类...

  • c# new与override

    override关键字表示重写(覆盖),对于加上override关键字的属性或函数将完全覆盖基类的同名虚属性或虚函...

  • C#基础-方法的重写(new)和覆盖(override)

    最近又再看基础知识了。 看到方法的重写(new)和覆盖(override)的时候有点不太懂。 于是百度之。 那答案...

  • 一道面试题的思考

    在继承中new和override相同点和区别?看下面的代码,有一个基类A,B1和B2都继承自A,并且使用不同的方式...

  • Unity基础-脚本生命周期

    1.Unity脚本 和 C#脚本区别? unity脚本继承自MonoBehavior。 unity脚本不能new。...

  • Java 拾遗三

    1. Override 和 Overload 的含义去区别 Override(重写) 重写(Overriding)...

  • overload和override的区别

    重载(overload),同一个类中可以有多个方法名相同的方法,但是这些方法的参数列表各不相同,包括 参数个数 类...

  • 2秒后跳转

    new Thread(new Runnable(){ @Override public v...

网友评论

      本文标题:C#中的override和new的区别

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