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

确定在java方法中创建什么类型的对象,java,class,inheritance,extend,Java,Class,Inheritance,Extend,我有一个名为“Shapes”的Java超类和两个名为“triangle”和“circle”的子类 我必须在形状中创建一个方法,用于计算创建的对象(三角形或圆形)的面积,如下所示: 公共双区域形状(双某物) 我不确定参数是什么(所以我放了一些…)。 因为公式将根据您将创建的对象类型而有所不同;如果是矩形,则需要长度和宽度。如果它是一个圆,你需要半径,所以我不确定如何从那里继续,因为我不确定是否需要一个“If语句”来确定我创建了什么类型的对象?你需要用抽象的calculateArea()方法编写Sh

我有一个名为“Shapes”的Java超类和两个名为“triangle”“circle”的子类

我必须在形状中创建一个方法,用于计算创建的对象(三角形或圆形)的面积,如下所示:

公共双区域形状(双某物)

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

你需要用抽象的
calculateArea()
方法编写Shape类,因为Shape没有任何关于如何计算面积的实现。然后,您可以使用三角形和圆形类扩展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();

只需将calculateArea方法放在每个子类中。或者,if语句也可以工作。我想这个赋值是关于继承的,所以您必须使用它;)注意:您的类名的复数形式令人困惑:
Shapes
是复数,
triangle
circle
是单数。我不知道您为什么需要这个“something”参数。对我来说,这是一个没有参数的抽象函数,返回double:public abstract double areaOfShape()。