第1题答案,请老师点评,谢谢。

来源:12-12 测评作业

慕码人5147775

2025-02-23

原题错在:重写的方法不应该接受任何参数,因为父类中的calArea方法没有参数,通过在子类增加一个带参构造方法,解决传参问题。修改后的三个类的代码如下:
ShapeArea类代码:

package com.imooc.test02.test01;

/**
 * 抽象类
 */
public abstract class ShapeArea {
    // 计算图形面积
    public abstract double calcArea();
}

CircleArea类代码:

package com.imooc.test02.test01;

/**
 * 圆形
 */
public class CircleArea extends ShapeArea {
    private double r;
    // 无参构造函数
    public CircleArea() {
    }
    // 增加一个带参构造函数,解决带参半径传递问题
    public CircleArea(double r) {
        this.r = r;
    }
    // 原题错在:重写的方法不应该接受任何参数,因为父类中的calArea方法没有参数
    /*@Override
    public double calcArea(double r) {
        double area = 3.14 * r * r;
        return area;
    }*/
    // 正确的写法:计算面积,不能传递参数,因为父类的calcArea方法没有参数,用带参构造函数解决传递参数问题
    @Override
    public double calcArea() {
        double area = 3.14 * r * r;
        return area;
    }
}

CircleAreaTest类代码:

package com.imooc.test02.test01;

public class CircleAreaTest {
    public static void main(String[] args) {
        CircleArea ca = new CircleArea(5);
        System.out.println("圆的面积为:" + ca.calcArea());
    }
}
写回答

1回答

彭彭老师

2025-02-24

是的,理解正确

0
0

Java零基础入门与实战

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

277 学习 · 220 问题

查看课程