20

スーパークラスのメソッドをオーバーライドする場合、Javaでは戻り型を共変にすることができます。

対照的に、メソッドをオーバーライドするときに反変パラメータータイプが許可されないのはなぜですか?

4

1 に答える 1

17

それはオーバーロードと呼ばれるからです。

特に、戻り型の型は、オーバーロード時に考慮されないため、共変である可能性があります。したがって、スーパークラスまたはインターフェイスの実装と一致します。オーバーロード時にパラメーターが考慮されます。Number doSomethingWithNumber(Integer value)と比較して最適化されている可能性がありますNumber doSomethingWithNumber(Number value)

于 2012-09-15T17:46:11.440 に答える