快捷导航

关于继承问题

1、编写抽象类Shape,具有getArea()、getPerimeter()方法。
2、编写类Circle、Rectangle、Triangle,都继承Shape类,并实现2个抽象方法。
3、编写测试类TestShape,其中的main方法中完成以下功能:
分别定义三个Shape类型变量p1、p2、p3,并分别用Circle、Rectangle、Triangle创对象
分别打印出三个对象的面积和周长。

免责声明:本内容仅代表回答者见解不代表本站观点,请谨慎对待。

版权声明:作者保留权利,不代表本站立场。

回复

使用道具 举报

参与会员1

//抽象类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
回复

使用道具 举报

可能感兴趣的问答

发新帖
  • 微信访问
  • 手机APP