利用抽象方法和抽象类来实现多形状的求面积和周长,首先定义基本几何图形的抽象基类(Shape),然后定义Shape的派生类Circle、Square和Triangle。要求首先画出类图(注意父类和子类之间的层次关系),然后通过抽象方法和方法覆盖来计算各种的面积和周长。(说明:这里只需计算Circle的面积和周长,Square和Triangle图形不需要计算!)

1个回答
展开全部
摘要 代码如下:
abstract class Shape {
public abstract double getArea();
public abstract double getPerimeter();
class Circle extends Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
@Override
public double getArea() {
return Math.PI * radius * radius;
}
@Override
public double getPerimeter() {
return 2 * Math.PI * radius;
}
class Rectangle extends Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
@Override
public double getArea() {
return width * height;
}
@Override
public double getPerimeter() {
return (width + height) * 2;
}
咨询记录 · 回答于2023-12-24
利用抽象方法和抽象类来实现多形状的求面积和周长 首先,我们需要定义一个基本几何图形的抽象基类(Shape)。这个基类将包含计算面积和周长的抽象方法。 然后,我们将定义Shape的派生类Circle、Square和Triangle。这些派生类将覆盖基类中的抽象方法,以提供具体的面积和周长计算逻辑。 接下来,我们需要画出类图,以明确父类和子类之间的层次关系。这个类图将清晰地展示各个类之间的继承关系。 最后,我们将通过抽象方法和方法覆盖来实现各种形状的面积和周长计算。这里我们只需要计算Circle的面积和周长,而Square和Triangle的图形不需要进行计算。
代码如下: abstract class Shape { public abstract double getArea(); public abstract double getPerimeter(); class Circle extends Shape { private double radius; public Circle(double radius) { this.radius = radius; } @Override public double getArea() { return Math.PI * radius * radius; } @Override public double getPerimeter() { return 2 * Math.PI * radius; } class Rectangle extends Shape { private double width; private double height; public Rectangle(double width, double height) { this.width = width; this.height = height; } @Override public double getArea() { return width * height; } @Override public double getPerimeter() { return (width + height) * 2; }
public class ShapeTest { public static void main(String[] args) { Circle circle = new Circle(5); System.out.println("圆面积:" + circle.getArea() + ",圆周长:" + circle.getPerimeter()); Rectangle rect = new Rectangle(6, 9); System.out.println("矩形面积:" + rect.getArea() + ",矩形周长:" + rect.getPerimeter()); }
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消