gpt4 book ai didi

oop - 多态性、重载和覆盖是相似的概念吗?

转载 作者:行者123 更新时间:2023-12-03 08:52:57 25 4
gpt4 key购买 nike

很难说出这里问的是什么。这个问题是模棱两可的、模糊的、不完整的、过于宽泛的或修辞的,无法以目前的形式得到合理的回答。如需帮助澄清这个问题以便重新打开它,visit the help center .




9年前关闭。




我对多态性、重载和覆盖的概念感到非常困惑,因为它对我来说似乎相同。请解释这些概念,以及它们之间有何不同

非常困惑,所以请正确指导我。

谢谢

最佳答案

Polymorphism可以通过覆盖来实现。简而言之,多态性是指对象根据自身性质提供不同行为(使用不同实现)的能力。具体来说,取决于它在类层次结构中的位置。

Method Overriding是在父类(super class)或接口(interface)中定义的方法由其子类之一重新定义时,从而修改/替换父类(super class)提供的行为。调用实现或另一个实现的决定是在运行时动态做出的,具体取决于调用操作的对象。请注意,方法的签名在覆盖时保持不变。

Method Overloading与多态性无关。它是指定义不同形式的方法(通常通过接收不同的参数编号或类型)。它可以看作是静态多态性。调用实现或其他实现的决定是在编码时做出的。请注意,在这种情况下,方法的签名必须更改。

Operator overloading是一个不同的概念,与多态性有关,它指的是特定语言相关运算符根据其操作数的类型表现出不同行为的能力(例如,+ 可能意味着与 String 的连接和与数字的加法操作数)。

example在 Wikipedia 中非常具有说明性。

以下相关问题也可能有用:

  • Polymorphism vs Overriding vs Overloading
  • Polymorphism - Define In Just Two Sentences
  • 关于oop - 多态性、重载和覆盖是相似的概念吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12893907/

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