Java里面Override的返回值是否必须和父类相同计算机等级考试

文章作者 100test 发表时间 2009:07:08 04:47:18
来源 100Test.Com百考试题网


  编辑特别推荐:

  全国计算机等级考试(等考)指定教材

  全国计算机等级考试学习视频

  全国计算机等级考试网上辅导招生

  全国计算机等级考试时间及科目预告

  百考试题教育全国计算机等级考试在线测试平台

  全国计算机等级考试资料下载

  全国计算机等级考试论坛

  计算机等级考试四级应用题解析汇总

  2009年下半年全国计算机二级考试报名时间从6月1日起已经开始报名。详情点击:2009年下半年全国计算机等级考试各地报名点汇总。2009年下半年全国计算机二级考试时间是2009年9月19日至23日。更多优质资料尽在百考试题论坛 百考试题在线题库

  我们看一下如下的程序代码Test.java
  class Base {
  public Base newInstance() {
  return new Base().
  }
  public Base newInstance2() {
  return new Base().
  }
  }
  class Test extends Base {
  // 返回值不同
  public Test newInstance() {
  return new Test().
  }
  // 返回值相同
  public Base newInstance2() {
  return new Test().
  }
  }
  class Base {
  public Base newInstance() {
  return new Base().
  }
  public Base newInstance2() {
  return new Base().
  }
  }
  class Test extends Base {
  // 返回值不同
  public Test newInstance() {
  return new Test().
  }
  // 返回值相同
  public Base newInstance2() {
  return new Test().
  }
  }
  这段代码到底对不对呢?能否编译通过呢?
  在JDK5.0以前,Override要求参数列表和返回值必须完全相同,否则编译不通过,所以在jdk 1.3、 1.4里面,这个代码是错误的。 Test里面的newInstance 的返回值必须修改为为父类完全相同的Base才可以。
  而在JDK1.5以后,系统允许返回值和父类不同了,但必须是其子类才可以。这个问题我也是在实际编程时才注意到的。
  当然,目前的大部分书籍还是老版本的,如果对大家产生了什么疑问,那么自己写一个代码亲自验证一下才是正确的。书籍里的知识有一些随着时间的流逝,肯定会过时的。

  2009年9月全国计算机等级考试时间及科目预告

  2009年NCRE考试有新变化

  2009年全国计算机等级考试-大纲

  全国计算机等级考试历年真题及答案

  2009年上半年全国计算机等级考试试题及答案



相关文章


Java构造时成员初始化的陷阱计算机等级考试
JAVA字符与字符串计算机等级考试
Overloading和Overriding介绍计算机等级考试
JAVA中对象的this引用计算机等级考试
Java里面Override的返回值是否必须和父类相同计算机等级考试
java读取property文件的方法计算机等级考试
tomcat6关于EL表达式的一个错误计算机等级考试
java实现jseval功能计算机等级考试
集成Java反编译功能到Eclipse和MyEclipse计算机等级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛