|
//抽象类publicabstractclassShape{protecteddoublearea;protecteddoubleperimeter;publicabstractdoublegetArea();publicabstractdoublegetPerimeter();}//圆publicclassCircleextendsShape{privatedoubleradii;publicCircle(doubleradii){this.radii=radii;}@OverridepublicdoublegetArea(){this.area=3.14*this.radii*this.radii;returnthis.area;}@OverridepublicdoublegetPerimeter(){this.perimeter=2*3.14*radii;returnthis.perimeter;}}//矩形publicclassRectangleextendsShape{privatedoublewidth;privatedoubleheight;publicRectangle(doublewidth,doubleheight){this.width=width;this.height=height;}@OverridepublicdoublegetArea(){this.area=width*height;returnthis.area;}@OverridepublicdoublegetPerimeter(){this.perimeter=2*(width+height);returnthis.perimeter;}}//三角形publicclassTriangleextendsShape{privatedoublebase;privatedoubleheight;privatedoubleside2;privatedoubleside3;publicTriangle(doublebase,doubleheight,doubleside2,doubleside3){this.base=base;this.height=height;this.side2=side2;this.side3=side3;}@OverridepublicdoublegetArea(){this.area=base*height;returnthis.area;}@OverridepublicdoublegetPerimeter(){this.perimeter=base+side2+side3;returnthis.perimeter;}}//测试类publicclassTestShape{publicstaticvoidmain(String[]args){Shapecircle=newCircle(5);System.out.println("面积"+circle.getArea()+"周长"+circle.getPerimeter());Shaperect=newRectangle(3,4);System.out.println("面积"+rect.getArea()+"周长"+rect.getPerimeter());//参数为底边高另两边边长应该也可以用勾股定理计算高Shapetriangle=newTriangle(3,4,4,5);System.out.println("面积"+triangle.getArea()+"周长"+triangle.getPerimeter());}}结果:面积78.5周长31.400000000000002面积12.0周长14.0面积12.0周长12.0 |