为什么Java不允许如下重写方法?
class Test1{
Integer test(){
return 5;
}
}
class Test2 extends Test1{
int test(){
return 4;
}
}
它产生与整数错误不兼容的int吗?
答案 0 :(得分:1)
您应该真正尝试使用Google搜索overriding methods return type
here
是的,可能有所不同,但有一些限制。在Java 5.0之前,重写方法时,参数和返回类型必须完全匹配。在Java 5.0中,它引入了一种称为协变返回类型的新功能。您可以覆盖具有相同签名的方法,但返回所返回对象的子类。
所以int
是原始类型,Integer
是包装类,它们之间没有关系