Java实验——设计一个抽象类图形类

目录

一、题目要求

二、解题思路

三、具体代码

四、运行截图


一、题目要求

   设计一个抽象类图形类,在该类中包含有至少三个抽象方法,分别用于求周长、求面积,以及对图形进行描述(如,“这是**形状,周长是**,面积是**”),分别定义圆形类、长方形类、等边三角形类来继承图形类,实现上述三个方法,并创建实例验证。

二、解题思路

        首先定义一个抽象类Shape,然后定义三个抽象方法,接下来分别定义Circle类,Rectangle类和E_triangle类,这三个类去继承Shape类,并分别根据自身要求重写Shape类中的抽象方法。

三、具体代码

import static java.lang.Math.PI;
import static java.lang.Math.sqrt;

abstract class Shape {//形状类
    abstract double perimeter();//周长
    abstract double area();//面积
    abstract void show();//输出显示
}

class Circle extends Shape{//圆类
    private final double r;//半径

    public Circle(double r) {//构造函数
        this.r = r;
    }

    @Override
    double perimeter(){
        return 2*PI*r;
    }

    @Override
    double area(){
        return PI*r*r;
    }

    @Override
    void show(){
        System.out.println("这是圆形,周长是"+perimeter()+",面积是"+area());
    }

}

class Rectangle extends Shape{//长方形类
    private final double l;//长
    private final double w;//宽

    public Rectangle(double l,double w) {//构造函数
        this.l=l;
        this.w=w;
    }

    @Override
    double perimeter() {
        return 2*(l+w);
    }

    @Override
    double area() {
        return l*w;
    }

    @Override
    void show() {
        System.out.println("这是长方形,周长是"+perimeter()+",面积是"+area());
    }
}

class E_triangle extends Shape{//等边三角形类
    private final double side;//边长

    public E_triangle(double side) {//构造函数
        this.side = side;
    }

    @Override
    double perimeter() {
        return 3*side;
    }

    @Override
    double area() {
        return 0.25*sqrt(3)*side*side;
    }

    @Override
    void show() {
        System.out.println("这是等边三角形,周长是"+perimeter()+",面积是"+area());
    }
}
public class T1{
        public static void main(String[] args){
                Circle c=new Circle(5);
                c.show();
                Rectangle r=new Rectangle(3,4);
                r.show();
                E_triangle e=new E_triangle(3);
                e.show();
        }
}

四、运行截图

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值