老师请检查
来源:4-4 编程练习
piii
2020-07-03 13:02:02
//抽象类Shape,里面含抽象方法area( )
public abstract class Shape {
public abstract double area();
} // 创建带参构造方法以及无参构造方法
public Circle() {
}
public Circle(double r) {
this.setR(r);
}
// 创建针对半径的赋值和取值方法
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
// 重写父类中area()方法
@Override
public double area() {
double d = this.getR() * this.getR() * 3.14;
return d;
}
}public class Rectangle extends Shape {
// 属性:矩形的长lenghth、宽wide
private double lenghth;
private double wide;
// 创建带参构造方法以及无参构造方法
public Rectangle() {
}
public Rectangle(double lengtht, double wide) {
this.setLenghth(lenghth);
this.setWide(wide);
}
// 创建针对长、宽的赋值和取值方法
public double getLenghth() {
return lenghth;
}
public void setLenghth(double lenghth) {
this.lenghth = lenghth;
}
public double getWide() {
return wide;
}
public void setWide(double wide) {
this.wide = wide;
}
// 重写父类的area()方法
@Override
public double area() {
double d = this.getLenghth() * this.getWide();
return d;
}
}//测试类
public class Test {
public static void main(String[] args) {
// 创建类的实例,并分别对圆的半径和矩形的长宽进行赋值
Shape one = new Rectangle(6.0, 5.0);
Shape two = new Circle(3.5);
// 调用area()方法,输出结果
System.out.println("圆的面积为 " + two.area());
System.out.println("矩形的面积为 " + one.area());
}
}2回答
同学你好,在Rectangle类带参构造中lenghth属性赋值失败,建议同学根据参数进行赋值,修改后代码如下所示:

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
piii
提问者
2020-07-03
//子类圆Circle类
public class Circle extends Shape {
// 属性:圆的半径r
private double r;
// 创建带参构造方法以及无参构造方法
public Circle() {
}
public Circle(double r) {
this.setR(r);
}
// 创建针对半径的赋值和取值方法
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
// 重写父类中area()方法
@Override
public double area() {
double d = this.getR() * this.getR() * 3.14;
return d;
}
}圆的代码没贴全
相似问题