定义一个抽象类图形Shape类,由该派生出两个子类圆Circle类和矩形Rectangle类。Shape里声明了抽象方法area(),该方法分别在两个子类里得到实现。
程序参考运行效果图如下:

任务
任务分析:
1、定义一个抽象类Shape,在它里面创建抽象方法area()方法
2、它的子类Circle类和Rectangle类
属性: r(圆的半径)
方法:
创建带参构造函数(参数为r)
重写area()方法,要求在里面返回圆的面积
属性:length(长)和wide(宽)
方法:
创建带参(length和wide为参数)构造方法
重写area()方法,要求在里面返回矩形的面积
3、编写测试类,分别创建Circle类的对象和Rectangle类的对象,设置圆的半径以及矩形的长宽,输出圆的面积和矩形的面积。(具体输出结果以具体设定参数为准)
1 2 3 4 5 6 7 8 9 10
| package me.feihong.shape;
public abstract class Shape { public Shape() {
}
public abstract double area();
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| package me.feihong.shape;
public class Circle extends Shape { private double r;
public Circle() { } public Circle(double r) { this.r=r; }
public double getR() { return r; }
public void setR(double r) { this.r = r; }
@Override public double area() { double area=Math.PI*r*r; return area; }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| package me.feihong.shape;
public class Rectangle extends Shape { private double length; private double wide;
public Rectangle() { }
public Rectangle(double length,double wide) { this.length=length; this.wide=wide; }
public double getLength() { return length; }
public void setLength(double length) { this.length = length; }
public double getWide() { return wide; }
public void setWide(double wide) { this.wide = wide; }
@Override public double area() { double area=length*wide; return area; }
}
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package me.feihong.test;
import me.feihong.shape.Circle; import me.feihong.shape.Rectangle;
public class Test {
public static void main(String[] args) { Circle cir=new Circle(3); Rectangle rect=new Rectangle(5,6); System.out.println("圆的面积为"+cir.area()); System.out.println("矩形的面积为"+rect.area()); }
}
|
输出结果:
圆的面积为28.274333882308138
矩形的面积为30.0