【发布时间】:2015-07-30 03:48:11
【问题描述】:
我最近阅读了一篇关于编程(C++、C#、VB)中shadowing或hiding的文章。
但我还是不明白这是什么原因?我们为什么要这样做?我的意思是,如果我们希望它返回值,我们总是可以调用真正的函数,而不是向它强制转换某些类。
好吧,我不太擅长编程,所以我看不出原因:)
谁能解释一下?
谢谢
【问题讨论】:
我最近阅读了一篇关于编程(C++、C#、VB)中shadowing或hiding的文章。
但我还是不明白这是什么原因?我们为什么要这样做?我的意思是,如果我们希望它返回值,我们总是可以调用真正的函数,而不是向它强制转换某些类。
好吧,我不太擅长编程,所以我看不出原因:)
谁能解释一下?
谢谢
【问题讨论】:
在阴影中,子类有自己的方法版本,提供不同的实现,相同的方法在基类中也可用。
假设您有一个项目中的各种模块正在使用的类库。有一种方法正在被其他库引用。如果我们改变方法,它可能会破坏现有的功能。因此,我们使用 new 关键字隐藏/隐藏该方法。这样我们就可以在不破坏旧功能的情况下实现新功能。
编辑:
您还可以在 Eric Lippert 的博客 here 上找到一个很好的示例。
【讨论】: