当前位置: 代码迷 >> J2SE >> 关于方法重写的有关问题
  详细解决方案

关于方法重写的有关问题

热度:67   发布时间:2016-04-23 19:37:13.0
关于方法重写的问题
class One {
   public One foo() {
   return this;
    }
}
  
class Two extends One {
    public One foo() {
    return this;
    }
}
 
class Three extends Two {
public Two foo() {
return this; 
}
}

如上所示的代码,按方法重写的规则来说,重写方法的返回值类型必须和父类的返回类型一样的。
但是在Three类中,我把foo方法重写后返回值类型改为Two,为什么能够正常编译没有报错?


------解决思路----------------------
"按方法重写的规则来说,重写方法的返回值类型必须和父类的返回类型一样的。"
了解下java协变返回类型你就不会这么说了
  相关解决方案