为什么 Java 中的逆变参数类型不允许重写?

重写超类的方法时,Java 允许返回类型为协变。

为什么在重写方法时不允许使用相反的逆变参数类型?


答案 1

因为这叫做重载

特别是,返回类型类型可以是协变的,因为在重载时不考虑它,因此它仍然与超类或接口的实现相匹配。重载时会考虑参数。与 相比,您很可能会进行优化。Number doSomethingWithNumber(Integer value)Number doSomethingWithNumber(Number value)


答案 2

推荐