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.結果截圖如下所示:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM