使用继承与多态思想编写矩形,等边三角形,圆,求周长与面积

该博客探讨如何使用Java编程中的继承和多态概念来创建矩形、等边三角形和圆形类,并实现计算它们的周长和面积。通过这种方式,可以实现代码的复用和灵活性,提高软件设计的质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
    使用继承与多态的思想。
    优点:
    避免了代码的重复,降低了程序的耦合度,
    便于以后的维护。
*/
public class Ex2 {
    public static void main(String[] args) {
        Ex2 e = new Ex2();
        e.print(new Circle(10));
        e.print(new Rectangle(5, 4));
        e.print(new Triangle(7));
    }

    public void print(Graph g) {
        System.out.println(g.p());
        System.out.println(g.area());
    }
}

class Graph {
    public double p() {
        return 0;
    }

    public double area() {
        return 0;
    }
}

/*
abstract class Graph {
    public abstract double p();

    public abstract double area();
}
*/

class Rectangle extends Graph {
    private double length;
    private double width;

    public Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    }
    @Override
    public double p() {
        return (length + width) * 2;
    }
    @Override
    public double area() {
        return length * width;
    }
}

class Triangle extends Graph {
    private double length;

    public Triangle(double length) {
        this.length = length;
    }
    @Override
    public double p() {
        return length * 3;
    }
    @Override
    public double area() {
        double height = length * length - (length / 2) * (length / 2);
        height = Math.sqrt(height);
        return length * height / 2;
    }
}

class Circle extends Graph {
    private double radius;

    public Circle(double radius) {
        this.radius = radius;
    }
    @Override
    public double p() {
        return 2 * Math.PI * radius;
    }
    @Override
    public double area() {
        return Math.PI * radius * radius;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值