java多态和接口的练习题

该文章介绍了一个Java编程练习,涉及设计一个名为Geometry的接口,用于计算面积。Circle类实现了圆形的面积计算,Triangle类实现了矩形的面积计算。在TestGeometry测试类中,展示了如何使用多态进行对象操作,以及通过数组遍历计算多个图形的面积。
摘要由CSDN通过智能技术生成

依旧是我的一个小练习。

编写程序

(1)设计一个接口Geometry,包含计算面积的方法getArea();

(2)设计类Circle圆形类,包括圆的半径属性。实现Geometry接口,计算圆的面积。

(3)设计Triangle矩形类,包括width和height两个属性。实现Geometry接口,计算矩形的面积

(4)分别输出圆形、矩形的面积


先创建接口Geometry:

public interface Geometry {
    void getArea();
}

创建Circle圆形类:

public class Circle implements Geometry{
    private double r;

    public double getR() {
        return r;
    }

    public void setR(double r) {
        this.r = r;
    }

    public Circle() {
    }

    public Circle(double r) {
        this.r = r;
    }

    @Override
    public void getArea() {
        double CA = 3.14 * r * r;
        System.out.println("圆的面积:" + CA);
    }
}

创建Triangle矩形类:

public class Triangle implements Geometry{
    private double length;
    private double width;

    public Triangle() {}

    public Triangle(double length, double width) {
        this.length = length;
        this.width = width;
    }

    public double getLength() {
        return length;
    }

    public void setLength(double length) {
        this.length = length;
    }

    public double getWidth() {
        return width;
    }

    public void setWidth(double width) {
        this.width = width;
    }

    @Override
    public void getArea() {
        double TA = length * width;
        System.out.println("矩形的面积:" + TA);
    }
}

创建测试类TestGeometry:

public class TestGeometry {

    public static void main(String[] args) {
        // 多态,向上转型
        Geometry geometry1 = new Circle(4);
        Geometry geometry2 = new Triangle(4,3);

        // 可以理解为强制转型:向下转型
//        Circle c = (Circle) geometry1;
//        c.setR(4);
        geometry1.getArea();
        geometry2.getArea();
        
        // 利用数组遍历求面积
        Geometry[] geometry3 = {new Circle(4),new Triangle(4,3)};
        for (int i = 0; i < geometry3.length; i++) {
            geometry3[i].getArea();
        }

    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值