java 使用抽象类解决长方形与圆求周长与面积的实现

人狠话不多,直接上代码

abstract class solver{//模糊类
    public abstract void getArea(); // 获取面积

    public abstract void getPan(); // 获取周长
}
class rectangle extends solver{//长方形
    private double a;
    private double b;
    public void  getPan() {
        double c=a+b+b+a;
        System.out.println("周长为"+c);
    }
    public void getArea(){
        System.out.println("面积为"+a*b);
    }
    public rectangle(double a,double b){
        this.a=a;
        this.b=b;
    }
    public static void main(String[] args) {
        rectangle a1= new rectangle(1,2);
        a1.getArea();
        a1.getPan();
    }
}
class circle extends solver{//圆

    private double r;
    double a=Math.PI;
    public void  getPan() {
        System.out.println("周长为"+a*r*2);
    }
    public void getArea(){
        System.out.println("面积为"+a*r*r);
    }
    public circle(double r){
        this.r=r;

    }
    public static void main(String[] args) {
        circle a1= new circle(1);
        a1.getArea();
        a1.getPan();
    }}
Java中,如果你需要设计一个程序来计算长方形和圆形的面积周长,你可以利用接口(Interface)和抽象类Abstract Class)这两种机制来实现多态性。 **接口**: 使用接口可以创建一个包含公共方法的规范,例如`ShapeArea`和`ShapePerimeter`。每个具体的形状如`Rectangle`和`Circle`都需要实现这个接口,并提供它们各自的面积周长计算方法。这样做的好处是保持了代码的灵活性,比如你可以添加新的形状而无需修改现有的计算逻辑。 ```java interface Shape { double getArea(); double getPerimeter(); } class Rectangle implements Shape { private double length; private double width; // 实现getArea() 和 getPerimeter() } class Circle implements Shape { private double radius; // 实现getArea() 和 getPerimeter() (使用π * radius^2 和 2 * π * radius) } ``` **抽象类**: 如果你想要共享一些通用的方法和属性,可以使用抽象类。例如,创建一个`AbstractShape`类,其中包含面积周长计算方法,然后让`Rectangle`和`Circle`作为它的子类。 ```java abstract class AbstractShape { abstract double getArea(); abstract double getPerimeter(); protected double calculateCommonArea(double... dimensions) { // 共享的计算逻辑 } } class Rectangle extends AbstractShape { // 实现getArea() 和 getPerimeter() 的具体逻辑 } class Circle extends AbstractShape { private double radius; // 实现getArea() 和 getPerimeter() (使用π * radius^2 和 2 * π * radius) } ``` 在使用这些接口或抽象类时,你可以根据传入的对象类型(如`Shape`、`Rectangle`或`Circle`实例)动态地调用相应的面积周长方法,体现了多态性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值