作业帮 > 综合 > 作业

java编程.类. 常见平面图形(如三角形、圆、矩形和正方形等)的面积.利用抽象类,编写程序实现该

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 20:16:27
java编程.类. 常见平面图形(如三角形、圆、矩形和正方形等)的面积.利用抽象类,编写程序实现该
java编程.类.
常见平面图形(如三角形、圆、矩形和正方形等)的面积.利用抽象类,编写程序实现该功能,编写测试类ShapeDemo分别对不同形状进行测试.
分析:各种平面图形都可以求出其面积,但不同的形状求面积的方法不同,因此可以定义一个平面图形形状类Shape.Shape类中有一个求面积的抽象方法(area),只所以定义为抽象方法是因为不同的平面图形求法不同.圆(Circle)、矩形(Rectangle)和三角形(Triangle)是不同的形状,它们都是Shape的子类,而正方形(Square)是矩形(Rectangle)中的一种特殊类型,因此正方形是矩形的子类.
abstract class Shape{
\x09abstract double area();
}

class Circle extends Shape {
\x09private double r;
\x09private final double PI=3.14;

\x09public Circle(double r) {
\x09\x09this.r = r;
\x09}

\x09@Override
\x09double area() {
\x09\x09return PI*r*r;
\x09}
}
 
class Rectangle extends Shape {
\x09private double w;
\x09private double h;

\x09public Rectangle(double w, double h) {
\x09\x09this.w = w;
\x09\x09this.h = h;
\x09}

\x09@Override
\x09double area() {
\x09\x09return w * h;
\x09}
}

class Triangle extends Shape {
\x09private double h;
\x09private double l;

\x09public Triangle(double h, double l) {
\x09\x09this.h = h;
\x09\x09this.l = l;
\x09}

\x09@Override
\x09double area() {
\x09\x09return 0.5 * h * l;
\x09}
}

class Square extends Rectangle {
\x09public Square(double l) {
\x09\x09super(l, l);
\x09}
}

public class Test {
\x09public static void main(String[] args) {
\x09\x09System.out.println("圆 "+new Circle(1).area());
\x09\x09System.out.println("矩形 "+new Rectangle(4,2).area());
\x09\x09System.out.println("正方形 "+new Square(3).area());
\x09\x09System.out.println("三角形 "+new Triangle(3,4).area());
\x09}
}