Java重写方法的返回类型可以不同吗?

重写的方法可以有不同的返回类型吗?

回答:

Java支持*协变返回类型的重写方法。这意味着重写的方法可能具有更特定的返回类型。也就是说,只要新的返回类型可分配给你要覆盖的方法的返回类型,就可以使用。

例如:

class ShapeBuilder {

...

public Shape build() {

....

}

class CircleBuilder extends ShapeBuilder{

...

@Override

public Circle build() {

....

}

这在Java语言规范的8.4.5节中指定:

如果返回类型是引用类型,则返回类型在彼此覆盖的方法之间可能会有所不同。返回类型可替换性的概念支持协变返回,即返回类型到子类型的特殊化。

当且仅当满足以下条件时,返回类型为R1的方法声明d1才可以替换为返回类型为R2的另一个方法d2:

回答:

回答:

回答:

回答:

  • R1 = | R2 |

以上是 Java重写方法的返回类型可以不同吗? 的全部内容, 来源链接: utcz.com/qa/435438.html

回到顶部