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