我有一个名为"形状" 的Java超类和名为"三角形" 和&##的2个子类34;圆"
我必须在 Shapes 中创建一个方法来计算创建的对象(三角形或圆形)的区域,如下所示:
public double areaOfShape(double something)
我不确定参数是什么(所以我放了些东西......)。 因为公式会根据您要创建的对象类型而有所不同;如果它是一个矩形,你需要长度和宽度。如果它是一个圆圈,你将需要半径,所以我不确定如何从那里继续,因为我不确定我是否需要一个" if语句"确定我创建了哪种对象?
答案 0 :(得分:5)
您需要使用抽象calculateArea()
方法编写Shape类,因为Shape没有任何关于如何计算区域的实现。然后,您可以使用Triangle和Circle类扩展Shape类,并覆盖calculateArea()
方法,如下所示:
abstract class Shape{
public abstract double calculateArea();
}
class Triangle extends Shape{
@Override
public double calculateArea(){
//Triangle implementation
}
}
class Circle extends Shape{
@Override
public double calculateArea(){
//Circle implementation
}
}
完成此操作后,您可以使用任何实现类实例化Shape引用并调用calculateArea()
例如:
Shape s = new Triangle();
s.calculateArea();