java se5中添加了协变返回类型,他表示在到处类中的被覆盖方法可以返回基类方法的返回类型的某种导出类型

 

class Grain(){

public String toStinrg(){return "Grain";}

}

class Wheat extends Grain(){
public String toString(){return "Wheat";}

}

calss Mill(){

Grain process(){return new Grain();}

}

class WheatMill extends Mill(){

Wheat precess(){return new Wheat();}

}

 

在旧版java中,被覆盖的process()方法只能返回Grain类型,尽管Wheat是从Grain导出来的(子类)

有了协变返回类型之后,就成为了合法的返回类型了。