代码阅读题-重写
同程-笔试
public class Test extends Super{ // public Integer getLength(){return 8;}; public Long getLength(){return new Long(5);} // 这里的Long返回值会报错 public static void main(String[] args) { Super supe = new Super(); Test test = new Test(); System.out.println(supe.getLength().toString()+test.getLength().toString()); } } class Super{ public Integer getLength(){ return new Integer(4); } }
事实上这段代码会编译报错,尝试使用了不兼容的参数类型
想一想这是怎么回事:
- 首先Test继承了Super父类,并且写了一个与父类成员方法同名的方法,但是返回值不同
- 会不会造成重写?事实上是造成重写了,虽然返回值不同,但是方法名相同
也就是说,子类要么重写父类方法,要么不使用与父类相同的方法名?!
已知的是重写的返回值要小于父类方法的返回值,这里的小于是指什么?
父类返回X类,子类重写返回X类的子类吗?
测试子类是可以的
本文作者:YaosGHC
本文链接:https://www.cnblogs.com/yaocy/p/16718181.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步