gpt4 book ai didi

.net - 重载、覆盖和隐藏?

转载 作者:行者123 更新时间:2023-12-04 16:15:39 27 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




8年前关闭。




谁能解释什么是.Net 中的重载、覆盖和隐藏?

谢谢

最佳答案

重载 是单个方法或运算符的多个可能“签名”的定义。每个签名采用不同的参数,本质上是一个不同的函数,与多个函数具有不同名称的情况没有什么不同。这通常用于对概念上相似的操作进行分组,例如重载 +BigInteger 一起工作并与 String :这两个操作似乎都可以使用 + for(除非你认为 + 的所有重载都应该定义 Abelian groups —— String 重载没有)。

覆盖 是同一方法签名的多个可能实现的定义,这样实现由第零个参数的运行时类型决定(在 C# 中通常由名称 this 标识)。

隐藏 是派生类型中方法的定义,其签名与其基类型之一中的签名相同,但没有覆盖。

覆盖和隐藏的实际区别如下:

  • 如果方法被覆盖,则调用的实现基于参数 this 的运行时类型。 .
  • 如果方法只是隐藏,则调用的实现基于参数 this 的编译时类型。 .
  • 关于.net - 重载、覆盖和隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856449/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com