很抱歉,如果这个问题令人困惑。这是一个例子:
有一个ArrayList包含“Shape”类型的数据。
“Circle”和“Triangle”都是“Shape”的孩子。 Circle有方法calculateRadius()。三角形不会也不会。
我想查看ArrayList中的所有形状并检查半径:
for(Shape s : shapeList)
{
System.out.println(s.calculateRadius);
}
我知道这不起作用,因为形状和三角形都没有这种方法。有没有办法检查列表中的形状是圆形还是三角形,然后在形状为圆形时计算半径?
如何定义列表并添加数据:
ArrayList<shape> shapeList = new ArrayList<shape>;
...
Circle c = new Circle(a, b, c, radius);
Triangle t = new Triangle(a, b, c, type);
shapeList.add(c);
shapeList.add(t);
答案 0 :(得分:0)
为了简单起见,只需在使用前键入check;
for (Shape s : shapeList)
{
if (s instanceof Circle)
{
System.out.println(((Circle) s).calculateRadius);
}
}