就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。
8年前关闭。
谁能解释什么是.Net 中的重载、覆盖和隐藏?
谢谢
最佳答案
重载 是单个方法或运算符的多个可能“签名”的定义。每个签名采用不同的参数,本质上是一个不同的函数,与多个函数具有不同名称的情况没有什么不同。这通常用于对概念上相似的操作进行分组,例如重载 +
与 BigInteger
一起工作并与 String
:这两个操作似乎都可以使用 +
for(除非你认为 + 的所有重载都应该定义 Abelian groups —— String
重载没有)。
覆盖 是同一方法签名的多个可能实现的定义,这样实现由第零个参数的运行时类型决定(在 C# 中通常由名称 this
标识)。
隐藏 是派生类型中方法的定义,其签名与其基类型之一中的签名相同,但没有覆盖。
覆盖和隐藏的实际区别如下:
this
的运行时类型。 . this
的编译时类型。 . 关于.net - 重载、覆盖和隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856449/