协办返回类型:
导出类中覆盖基类的方法,可以返回基类方法中返回类型的某一个导出类。
package com.zx.test08;
class Grain{
@Override
public String toString() {
return "Grain";
}
}
class Wheat extends Grain{
@Override
public String toString() {
return "Wheat";
}
}
class Mill{
Grain procss(){
return new Grain();
}
}
class WhertMill extends Mill{
@Override
Wheat procss() {
return new Wheat();
}
}
public class CovariantReturn {
public static void main(String[] args) {
Mill mill = new Mill();
Grain grain = mill.procss();
System.out.println(grain);
mill=new WhertMill();
grain=mill.procss();
System.out.println(grain);
}
}
示例详解:
Mill中的procss()返回的是Grain类,因为 Wheat类是Grain的导出类。所以在Mill的导出类 WhertMill中被覆盖的 procss可以返回Wheat的类型