thinking in java中的“协变类型”

Class Grain
{
    public String toString(){return "Grain";}
}

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

Class Mill
{
    public Grain process(){return new Grain();}
}

Class WheatMill extends Mill
{
    public Wheat process(){return new Wheat();}
}

 Wheate 覆盖了Mill的process方法。但是返回了一个Wheat的类型。也就是说返回了一个更加具体的类型。这个就叫做协变了。还是好用的。以后用到的时间在说协变类型的方便。

 

 

无事再看thinking in java

你可能感兴趣的:(java)