方法重写中的协变返回类型
如果满足某些条件,Java 中的重写方法的返回类型可以不同。具体来说,Java 支持协变返回类型,允许重写方法具有比它所重写的方法更具体的返回类型。
根据 Java 语言规范 (JLS) 第 8.4.5 节,这是允许的,只要遵循以下规则:
如果原始方法返回引用类型:
例如,请考虑以下代码:
class ShapeBuilder { ... public Shape build() { .... } } class CircleBuilder extends ShapeBuilder{ ... @Override public Circle build() { .... } }
在此示例中,CircleBuilder 中的 build() 方法覆盖了 build( ) ShapeBuilder 中的方法。重写方法的返回类型是 Shape,而重写方法的返回类型是 Circle,它是 Shape 的子类型。这是 Java 协变返回类型规则所允许的。
以上是Java 中的重写方法何时可以具有不同的返回类型?的详细内容。更多信息请关注PHP中文网其他相关文章!