原始和包装返回类型java

时间:2018-09-12 17:21:07

标签: java

为什么Java不允许如下重写方法?

class Test1{
    Integer test(){
        return 5;
    }
}
class Test2 extends Test1{
    int test(){
        return 4;
    }
}

它产生与整数错误不兼容的int吗?

1 个答案:

答案 0 :(得分:1)

您应该真正尝试使用Google搜索overriding methods return type here

  

是的,可能有所不同,但有一些限制。在Java 5.0之前,重写方法时,参数和返回类型必须完全匹配。在Java 5.0中,它引入了一种称为协变返回类型的新功能。您可以覆盖具有相同签名的方法,但返回所返回对象的子类。

所以int是原始类型,Integer是包装类,它们之间没有关系