我试图返回两个对象区域的总和。以下是该计划的目的:
n = 6
'9' * n
=> '999999'
我一直在public class TestSumArea
{
public static void main(String [] args)
{
GeometricObject[] a = {
new Circle (2.4),
new Rectangle (3, 5)};
}
public static double sumArea(GeometricObject[] a)
{
double sum = 0;
for (int i = 0; i < a.length; i++)
{
sum += a[i].getArea();
}
return sum;
}
}
,我不知道为什么。
以下是cannot find symbol - method getArea()
程序(Circle
只有高度和宽度基本相同。)
Rectangle
感谢任何帮助。
答案 0 :(得分:4)
您需要GeometricObject
类或接口来实现或声明getArea
方法,因为您的数组类型为GeometricObject
。
子类(Circle
,Rectangle
等)可以@Override
该方法。
数组中每个getArea
的具体实现GeometricObject
将在运行时解析。
示例强>
abstract class GeometricObject {
/* You can actually draft a default implementation
here if you're using an abstract class.
Otherwise you may want to opt for an interface.
*/
abstract double getArea();
}
class Rectangle extends GeometricObject {
@Override
public double getArea() {
// TODO calculations
return 0; //draft
}
}
答案 1 :(得分:1)
您有GeometricObject[] a
所以当您致电a[i].getArea()
时,getArea()
方法必须在GeometricObject
上。它可以是抽象方法,但签名必须在那里。< / p>
答案 2 :(得分:0)
public double getArea();
添加到GeometricObject接口