java协变性

java中数组是协变的,但泛型不是协变的,所以java5用通配符来弥补不足,    这样传递Collection<Shape>或者Collection<Square>都能编译通过,正常运行。

public static double totalArea(Collection<? extends Shape> arr){

double total = 0;

for(Shape s : arr)

if(s !=null)

total += s.area();

return total;

}

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页