Java SE5中添加了协变返回类型,可以在子类被覆盖方法中返回基类类型,具体请看以下例子:
class G
{
public String toString()
{
return "G";
}
}
class W extends G
{
public String toString()
{
return "W";
}
}
class M
{
G process()
{
return new G();
}
}
class T extends M
{
G process()
{
return new W();
}
}
public class CovariantReturn
{
public static void main(String[] args)
{
M m=new M();
G g=m.process();
System.out.println(g);
m=new T();
g=m.process();
System.out.println(g);
}
}
结果: