JAVA是否允许返回值类型不同的重载overload或覆盖override
2014-03-11 14:41
302 查看
在看《Thinking in java》的时候,看到子类的方法和父类的方法名字相同,但是返回值类型不同,然后就开始怀疑这属于覆盖吗,到网上找到了答案,分析见接下来的网址:
http://ghostfromheaven.iteye.com/blog/803305
虽然作者也没有给出最后的解释,但我是这样理解的:
重写是不准许父类和子类只是返回值类型不同,而覆盖是准许父类和子类的返回值类型不一样,只不过那个返回值类型要是一种继承关系,比如文章中的process()方法返回值一个是Grain类型,一个是Wheat类型,Grain和Wheat有继承关系,所以可以,而 void类型和int类型不存在这样的关系,所以 不行。
http://ghostfromheaven.iteye.com/blog/803305
虽然作者也没有给出最后的解释,但我是这样理解的:
重写是不准许父类和子类只是返回值类型不同,而覆盖是准许父类和子类的返回值类型不一样,只不过那个返回值类型要是一种继承关系,比如文章中的process()方法返回值一个是Grain类型,一个是Wheat类型,Grain和Wheat有继承关系,所以可以,而 void类型和int类型不存在这样的关系,所以 不行。
相关文章推荐
- java是否允许返回值类型不同的重载overload或者覆盖override
- 【JAVA基础小问题】Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
- Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
- Java重载(overload)和覆盖(override)中的陷阱
- JAVA重载(overload)和覆盖(override)中你所不知道的陷阱
- PHP和JAVA中的重载(overload)和覆盖(override) 介绍
- Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
- JAVA重载(overload)和覆盖(override)中你所不知道的陷阱
- java基础---方法的重载(overload)和覆盖(重写)(override)
- 重载(overload)和覆盖(重写override)有什么不同?
- Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
- Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
- 【JAVA重载(overload)和覆盖(override)中的陷阱】
- Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
- Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
- Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
- Override和Overload区别,Overloaded的方法是否可以改变返回值的类型?
- Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
- java的重载(overload)和覆盖(override)简介
- java总的重载(overload)、重写或覆盖(override)和隐藏分析;