編寫一個程序,定義一個抽象類“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.結果截圖如下所示: