Covariant return types字面中文意思是协变返回类型,在子类重写父类方法时,可以改变方法的返回类型。这个返回类型特意做了下测试。
1、返回类型是基本类型时,则不能改变。
class Parent
{
public long func()
{
return 1;
}
}
class Child extends Parent
{
public int func()
{
return 1;
}
}
上面的代码编译通不过,提示重写时,返回类型要一致。
2、返回类型是关联的对象,即子类方法的返回类型是父类方法返回类型的子类,以下的代码编译可以通过
class SupRet
{
}
class SubRet extends SupRet
{
}
class Parent
{
public SupRet func()
{
return null;
}
}
class Child extends Parent
{
public SubRet func()
{
return null;
}
}
注:以上这个代码是JDK5.0测试的。