编写Java程序定义接口

定义接口 DiagArea,其中包含方法 double getDiagonal()求对角线长, double getArea()求 面积。定义一个矩形类,实现此接口,并自行扩充成员变量和方法,定义一个正方形类 实现此接口(如:矩形有长 w 和宽 h,并有相应的构造方法,有一个方法直接显示边 长、面积和对角线长)。定义 Main 类作为运行入口,并使用测试该类。

参考如下:

//测试类Test

public class Main
{
    public static void main(String[] args)
    {
        Rectangle rectangle = new Rectangle(10.2, 5.1);
        System.out.println("对角线:" + rectangle.getDiagonal());
        System.out.println("面积:" + rectangle.getArea());

        
    }
}

interface DiagArea {
    double getDiagonal();
    double getArea();
}

class Rectangle implements DiagArea {

    private double w; // 长

    private double h; // 宽

    public Rectangle() {
    }

    public Rectangle(double w, double h) {
        this.w = w;
        this.h = h;
    }

    @Override
    public double getDiagonal() {
        return Math.sqrt(w * w + h * h);
    }

    @Override
    public double getArea() {
        return w * h;
    }

    public double getW() {
        return w;
    }

    public void setW(double w) {
        this.w = w;
    }

    public double getH() {
        return h;
    }

    public void setH(double h) {
        this.h = h;
    }
}

class Square implements DiagArea {

    private double side;

    public Square() {
    }

    public Square(double side) {
        this.side = side;
    }

    @Override
    public double getDiagonal() {
        return Math.sqrt(side * side + side * side);
    }

    @Override
    public double getArea() {
        return side * side;
    }

    public double getSide() {
        return side;
    }

    public void setSide(double side) {
        this.side = side;
    }
}




接口DiagArea:

public interface DiagArea {
    //求对角线长
    double getDiagonal();
    //求面积
    double getArea();
}

矩形类:

public class Rectangle implements DiagArea{
    private double width;
    private double height;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    public void showInfo() {
        System.out.println("长方形 长:" + height + ",宽:" + width);
    }

    @Override
    public double getDiagonal() {
        return Math.sqrt(width * width + height * height);
    }

    @Override
    public double getArea() {
        return width * height;
    }
}

正方形类:

public class Square implements DiagArea{
    private double sideLength;

    public Square(double sideLength) {
        this.sideLength = sideLength;
    }

    public void showInfo() {
        System.out.println("正方形边长: " + sideLength);
        System.out.println("正方形面积:" + getArea());
        System.out.printf("正方形对角线长:%.2f\n", getDiagonal());
    }

    @Override
    public double getDiagonal() {
        return Math.sqrt(sideLength * sideLength + sideLength * sideLength);
    }

    @Override
    public double getArea() {
        return sideLength * sideLength;
    }
}

Main 类:

public class Main {
    public static void main(String[] args) {
        Rectangle rectangle = new Rectangle(3, 4);
        rectangle.showInfo();
        System.out.println("长方形面积:" + rectangle.getArea());
        System.out.printf("长方形对角线长:%.2f\n", rectangle.getDiagonal());

        Square square = new Square(5);
        square.showInfo();
    }
}

测试输出:
长方形 长:4.0,宽:3.0
长方形面积:12.0
长方形对角线长:5.00
正方形边长: 5.0
正方形面积:25.0
正方形对角线长:7.07