关于java 方法 重写 返回值问题?????????
网上看了说,方法重写时,返回值可以是变小,就是可以是父类被重写的方法的返回值的子类,也做了实验,编译错误:classC{publicObjectprint(){retur...
网上看了说,方法重写时,返回值可以是变小,就是可以是父类被重写的方法的返回值的子类,也做了实验,编译错误:
class C{
public Object print(){
return null;
}
}
class D extends C{
public String print(){
return null;
}
}
----String返回值这里出现The return type is incompatible with C.print()的错误---
JDK 版本1.8没错,这理论应该也没错,网上还说两个类不要放一个文件,试了还是有错,是错在哪里呢?? 展开
class C{
public Object print(){
return null;
}
}
class D extends C{
public String print(){
return null;
}
}
----String返回值这里出现The return type is incompatible with C.print()的错误---
JDK 版本1.8没错,这理论应该也没错,网上还说两个类不要放一个文件,试了还是有错,是错在哪里呢?? 展开
展开全部
是的,这个叫协变的返回值,子类重写重载都可以有协变的返回值,如果报错看看是不是其他问题。IDE或编译环境
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这不叫重写 重写 是返回值和函数名都与父类相同 而参数不同.你得代码写的没有任何问题,不应该有错误
追问
都是水货,回答牛头不对马嘴
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
上面的例子是构成了方法的重载,而方法的重载要求 返回值必须相同 ,只是参数表不同 和抛出异常不同的, +我教你没问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询