/**
*从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以上的