在 Java 中重载不同的返回类型?

新手上路,请多包涵

为什么不能仅通过更改返回类型来重载函数?这会在未来的 Java 版本中改变吗?

顺便说一句,仅供参考,这在C++中可能吗?

原文由 nunos 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 486
2 个回答

Java做不到,C++也做不到。理由是仅返回值不足以让编译器确定调用哪个函数:

 public int foo() {...}
public float foo() {..}

...
foo(); // which one?

原文由 Alexander Gessler 发布,翻译遵循 CC BY-SA 2.5 许可协议

原因是 Java 中的重载只允许用于具有不同 签名 的方法。

返回类型不是方法签名的一部分,因此不能用于区分重载。

请参阅 Java 教程中的 定义方法

原文由 Oded 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题