确定在java方法中创建的对象类型

时间:2016-03-01 22:51:58

标签: java class inheritance extend

我有一个名为"形状" 的Java超类和名为"三角形" &##的2个子类34;圆"

我必须在 Shapes 中创建一个方法来计算创建的对象(三角形或圆形)的区域,如下所示:

public double areaOfShape(double something)

我不确定参数是什么(所以我放了些东西......)。 因为公式会根据您要创建的对象类型而有所不同;如果它是一个矩形,你需要长度和宽度。如果它是一个圆圈,你将需要半径,所以我不确定如何从那里继续,因为我不确定我是否需要一个" if语句"确定我创建了哪种对象?

1 个答案:

答案 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();