gpt4 book ai didi

java - 关于我的程序和多态性的问题

转载 作者:行者123 更新时间:2023-11-29 03:28:50 25 4
gpt4 key购买 nike

好吧,基本上我正在创建一个程序,它允许用户选择一个形状(三角形、正方形、圆形),然后它接收一个 int 并计算边界长度和面积。

我这样做没有问题,并且有一个运行完美的程序。 (https://gist.github.com/anonymous/c63a03c129560a7b7434 4 节课)但现在我必须用多态概念来实现它,老实说,我正在为如何去做而苦苦挣扎。

关于继承,我对我想做什么有一个基本的想法

                                       Main
|
Shapes
/ | \
triangle circle square

但我不明白当三角形/正方形/圆形类中的所有方法都是唯一的时我应该如何覆盖,没有“抽象”方法这样我可以从“Shapes”类继承.

如果有人可以快速查看我链接的代码并提出执行此操作的方法,我们将不胜感激。

对不起,如果我不善于解释这一点。谢谢。

最佳答案

也许这可以作为一个开始:

public abstract class Shape {
protected double length;
public Shape(double length) {
this.length = length;
}
public abstract double getArea();
public abstract double getBoundaryLength();
}

以及一种可能的实现方式

public class Circle extends Shape {
@Override
public double getArea() {
return length * length * Math.PI;
}
@Override
public double getBoundaryLength() {
return 2 * length * Math.PI;
}
}

在主内:

Shape shape = new Circle(scan.nextDouble()); // Use variable of type shape here

..

// this code is the same for all shapes
double boundaryLength = shape.getBoundaryLength(length);
double area = shape.getArea(length);
System.out.println("Boundary Length = " + Math.round(boundaryLength));
System.out.println("Area = " + Math.round(area));

关于java - 关于我的程序和多态性的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19528861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com