Java 抽象类

  编写一个程序,定义一个抽象类“Shape”,包含两个方法,计算周长和计算面积。然后定义两个子类,矩形(Rect)和圆形(Circle)。矩形有长和宽属性,圆形有半径属性,但两个类都要实现抽象类中的周长和计算面积方法。

  编写测试类测试上述类。

 

1.定义一个抽象类“Shape”,包含两个方法,计算周长和计算面积。

packagecom.shen.shape;
//定义一个抽象类“Shape”,包含两个方法,计算周长和计算面积。
publicabstractclass Shape {
publicabstractdoublegetCircumference(); //计算周长
publicabstractdoublegetArea(); //计算面积
}

2.定义子类矩形(Rect)继承自抽象类“Shape”

packagecom.shen.shape;
//定义子类矩形(Rect)继承自抽象类“Shape”
publicclassRectextends Shape{
    privatedoublewidth; //矩形的长
    privatedoubleheight; //矩形的宽

    //构造函数
    publicRect(double width, double height) {
        super();
        this.width = width;
        this.height = height;
    }

    //求矩形的周长
    @Override
    publicdoublegetCircumference() {
        // TODO Auto-generated method stub
        return (width+height)/2.0;
    }

    //求矩形的面积
    @Override
    publicdoublegetArea() {
        // TODO Auto-generated method stub
        returnwidth*height;
    }
}

 

3.定义子类圆形(Circle)继承自抽象类“Shape”

packagecom.shen.shape;
//定义子类圆形(Circle)继承自抽象类“Shape”
publicclass Circle extends Shape{
    privatedoubler; //圆的半径

    //构造函数
    public Circle(double r) {
            super();
            this.r = r;
        }
    //求圆的周长
    @Override
    publicdoublegetCircumference() {
        // TODO Auto-generated method stub
        return 2*Math.PI*r;
    }
//求圆的面积
    @Override
    publicdoublegetArea() {
        // TODO Auto-generated method stub
        returnMath.PI*r*r;
    }
}

 

4.定义一个测试类Main测试上述类。

packagecom.shen.shape;
//这是一个测试类Main
publicclass Main {
    /**
     * @paramargs
     */
    publicstaticvoid main(String[] args) {
        // TODO Auto-generated method stub
//测试矩形类,求矩形的周长和面积
        Rectrect=newRect(5, 6);
        System.out.println("长是5,宽是6的矩形的周长是: "+rect.getCircumference());
        System.out.println("长是5,宽是6的矩形的面积是: "+rect.getArea());
        
    //测试圆形类,求圆形的周长和面积
        Circle circle=new Circle(5);
        System.out.println("\n半径是5的圆的周长是: "+circle.getCircumference());
        System.out.println("半径是5的圆的面积是: "+circle.getArea());
    }
}

 

5.结果截图如下所示:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值