【发布时间】:2013-01-25 10:24:14
【问题描述】:
我读过一本书,它说如果方法具有相同的签名,我可以覆盖它。根据本书,方法的签名是 Method_Name + 传递的参数。
根据本书,我可以覆盖具有不同返回类型的方法。实际上是否可以在 Java 中覆盖具有不同返回类型的方法?因为我在网上做了一些搜索,我发现有人说要覆盖一个方法,返回类型也应该相同。
根据这本书还说,当我们尝试重载具有相同方法名称和参数但返回类型不同的方法时,java 将引发编译错误,因为签名仅表示方法名称和参数。如果这是真的,我们应该能够覆盖具有不同返回类型的方法。
请帮助我理解这一点。提前致谢。
【问题讨论】:
-
在 Java 5.0 中添加了协变返回类型,我不会太担心 Java 6 之前的任何事情。 Java 6 中存在允许重载返回类型的错误,但这已在 Java 7 中修复;)
-
@PeterLawrey 找不到任何相关信息 - 介意链接到该错误吗?
标签: java overloading overriding