1、帮小慕看看,下面的代码错在哪里了?老师您检查下吧 看看理解对吗

来源:12-12 测评作业

unbreakable_全栈

2024-12-01

package com.imooc.shapeArea;

/**
 * 抽象类
 */
public abstract class ShapeArea {
    // 计算图形面积
    public abstract double calcArea(); // 这是一个抽象方法
}


package com.imooc.shapeArea;

/**
 * 圆形
 * CircleArea类现在有一个名为calArea的方法,它正确地覆盖了ShapeArea类中的抽象方法。
 * 此外,CircleArea类有一个名为radius的私有成员变量,以及一个构造函数来设置这个半径。
 * 在Test类中,我们创建了一个CircleArea对象,并传递了一个半径值。然后我们调用calArea方法来计算并打印圆的面积。
 */
public class CircleArea extends ShapeArea {
    private double radius; // 假设CircleArea有一个radius属性

    // CircleArea的构造函数,用于设置半径
    public CircleArea(double radius) {
        this.radius = radius;
    }

    /**
     * 小幕错在:方法不应该接受任何参数,因为父类中的calArea方法没有参数
     * @return
     */
    @Override
    public double calcArea() {
        // 使用Math.PI来获取更精确的π值
        double area = Math.PI * radius * radius;
        return area;
    }
}


package com.imooc.shapeArea;

public class Test {
    public static void main(String[] args) {
        // 实例化CircleArea而不是ShapeArea
        ShapeArea shapeArea = new CircleArea(1.0);
        // 调用calArea方法,注意方法名是calArea而不是calcArea
        double area = shapeArea.calcArea();
        System.out.println("圆的面积是: " + area); // 圆的面积是: 3.141592653589793
    }
}

写回答

1回答

彭彭老师

2024-12-01

同学的理解是正确的


0
1
unbreakable_全栈
非常感谢!
2024-12-01
共1条回复

Java零基础入门与实战

Java零基础入门与实战 多场景|多案例|全栈项目

277 学习 · 220 问题

查看课程