Welcome To 木影**凌翔 的博客!|

木影**凌翔

园龄:2年11个月粉丝:1关注:0

New与override区别

New与Override区别

New(隐藏)

new是指“隐藏”,是指子类隐藏了父类的方法,当然,通过一定的转换,可以在子类的对象中访问父类的方法。

  1. new是派生类用来隐藏基类中的方法的;也就是说在派生类中“看不到”基类中的方法;

  2. 如果要在派生类中隐藏(不是重写)基类中的方法,而没有使用new关键字,编译时会出现一个警告,提示如果是要隐藏基类中的方法,请使用new关键字;

  3. 派生类可以隐藏基类中的虚方法,也可以隐藏基类中的普通方法。

  4. 如果在派生类中用private来修饰new 方法,那么只在该派生类中隐藏了基类中的方法,在该派生类之外,相当于没有隐藏基类中的方法;

  5. 如果在派生类中隐藏了基类中的方法,在该派生类的派生类中,将延续对该派生类对基类方法的隐藏。

Override(覆盖)

override是指“覆盖”,是指子类覆盖了父类的方法。子类的对象无法再访问父类中的该方法。

  1. override是派生类用来重写基类中方法的;

  2. override不能重写非虚方法和静态方法;

  3. override只能重写用virtual、abstract、override修饰的方法;

  4. 不能使用修饰符 new、static、virtual 或 abstract 来修改 override 方法。

总结

共同点

  1. 它们都是子类在用某种方式来“隐藏”父类的同名方法
  2. 在子类对象上调用这个方法,会实际调用子类的“新”方法,而非基类的方法
  3. 它们都可以在方法中使用base来调用基类的方法

不同点

  1. override会真正覆盖掉基类的方法,使它再无可能被调用到;而 new 则只是将基类方法进行了隐藏
  2. override关键字必须要写明; new则并不必须,相当于在表明自己很清楚是在试图隐藏基类方法

如何选择

  1. virtual 标记的方法就意味着这个方法有很大可能性会在子类中被覆写,并提供更具体目有意义的实现。基类中的 virtual 方法通常只给出最基本且很可能不完整的实现,通常只是用来辅助子类的覆写。一旦子类给出了更好的实现,那么基类的方法并不应该希望被调用。
  2. 基类的普通方法在设计时并不打算让子类进行覆写,因为这些方法通常已经是完整且有意义的。只有当子类希望对某个基类方法进行进一步定制时,才会考虑用 new这种方式来显式隐藏基类的方法。但基类的方法仍然是有意义且可以被调用的。
  3. 简单来说,如果你想“覆盖”基类的某个方法,但是该方法并不是 virtual 时,你才需要考虑用 new

本文作者:MuyingBlog

本文链接:https://www.cnblogs.com/MuyingBlog/p/17629923.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   木影**凌翔  阅读(19)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 就让这大雨全都落下 (Live版) 汪苏泷,容祖儿
  2. 2 Letting Go (Live版) 吉克隽逸,汪苏泷
就让这大雨全都落下 (Live版) - 汪苏泷,容祖儿
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

原唱 : 容祖儿

作词 : 汪苏泷

作曲 : 汪苏泷

编曲 : 金若晨/韦星弟

制作人 : 汪苏泷/金若晨

词曲 : 汪苏泷

合音编写:汪苏泷/金若晨/徐杰

合音:徐杰/姜糖Shirley

吉他采样录制:张楚弦

音乐总监:彭程@金牛studio

音响总监:何飚

乐队队长&键盘1:董音@牛班NEWBAND

键盘2:叶霖@牛班NEWBAND

吉他1:黄仲贤@牛班NEWBAND

吉他2:倪伟恩@牛班NEWBAND

贝斯:宣一亨@牛班NEWBAND

鼓:Chris Trzcinski@牛班NEWBAND

和音:张恋歌 曾嵘 孟呈真 费瀚林

和音编写:张恋歌

弦乐:国际首席爱乐

PGM:章谋杰

音乐混音:林梦洋

最复杂的自己

最复杂的自己

最失控的回忆

最矫情的情绪

最害怕告诉你

要怎么去证明

要怎么去证明

要怎么去冷静

要怎么做才能 够把你忘记

深爱过的你

深爱过的你

有些事情是无法继续

我的问题是你不觉得我有问题

能不能不能再听一听你的声音

算我没出息

就让这大雨全都落下

就让这大雨全都落下

就让你看不见我脸上的挣扎

都结束吧 说心里话

那个最自私的人是你吗

难过只写在我手机

省得还需要你忘记

都快走吧

我晚点就回家

要怎么去证明

要怎么去证明

要怎么去冷静

要怎么做才能 够把你忘记

深爱过的你

深爱过的你

有些事情是无法继续

我的问题是你不觉得我有问题

能不能不能再听一听你的声音

算我没出息

就让这大雨全都落下

就让这大雨全都落下

就让你看不见我脸上的挣扎

都结束吧 说心里话

那个最自私的人是你吗

难过只写在我手机

省得还需要你忘记

都快走吧

我晚点就回家

存在的平行时空里

存在的平行时空里

没有海洋没有陆地

只有不间断的雨季

雨滴落下的声音

有种寂寞的频率

声音可以弱化掉所有情绪

就让这大雨全都落下

就让这大雨全都落下

经历的美好都要付一点代价

会后悔吗 会怀念吗

对你都不痛不痒吧

不如就这样不讲话

省得让气氛更尴尬

爱过我吗

眼泪是心疼吗

大雨落下 大雨落下

大雨落下 大雨落下

大雨落下 大雨落下

不痛不痒吧

这样不讲话

大雨全落下

大雨落下 大雨落下

大雨落下 大雨落下

不痛不痒吧

这样不讲话

大雨落下

爱过我吗