/**
*从java5开始,只要新的返回类型是被重写的(超类)方法所声明的返回类型的子类
*就允许更改重写方法中的返回类型
*但是如果尝试用1.4编译器或者利用如下的源标志编译这段代码:
* javac -source 1.4 Beta.java
*将会看到如下编译错误:
attemping to use incompatible return type
*/
class Alpa
{
Alpa doStuff(char c){
return new Alpa();
}
}
class Beta extends Alpa
{
Beta doStuff(char c){
return new Beta();
}
}
由此我们可以看到重载与重写方法之间的一些相似的地方:
重载方法可以改变返回类型,而重写方法只在协变式返回的范围才可以这样做,而且jdk的版本得是5以上的
本文探讨了从Java 5开始引入的一个新特性——协变返回类型。这一特性允许子类方法覆盖父类方法时更改返回类型,但新类型必须是父类返回类型的子类型。文章通过具体示例解释了如何使用这一特性,并说明了其在不同JDK版本间的兼容性。
910

被折叠的 条评论
为什么被折叠?



