抱歉,这个问题令人困惑。这是一个例子:
有一个ArrayList包含类型为“ 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);
为了简单起见,只需在使用前输入check即可;
for (Shape s : shapeList)
{
if (s instanceof Circle)
{
System.out.println(((Circle) s).calculateRadius);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句