Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface ShapeOperations{
- double calculateArea();
- double calculatePerimeter();
- }
- abstract class Shape implements ShapeOperations{
- public abstract String getShapeName();
- }
- class Circle extends Shape{
- double radius;
- Circle(double radius){
- this.radius=radius;
- }
- public double calculateArea(){
- return Math.PI*radius*radius;
- }
- public double calculatePerimeter(){
- return 2*Math.PI*radius;
- }
- public String getShapeName(){
- return "Circle";
- }
- }
- class Rectangle extends Shape{
- double width, height;
- Rectangle(double width, double height){
- this.width=width;
- this.height=height;
- }
- public double calculateArea(){
- return width*height;
- }
- public double calculatePerimeter(){
- return 2*(width+height);
- }
- public String getShapeName(){
- return "Rectangle";
- }
- }
- class Square extends Rectangle{
- double side;
- Square(double side){
- super(side,side);
- }
- public String getShapeName(){
- return "Square";
- }
- }
- public class ShapeCalculator{
- public static void main(String[] args){
- Shape c = new Circle(3);
- Shape r = new Rectangle(5,2);
- Shape s = new Square(4);
- System.out.println(c.getShapeName());
- System.out.println("Area: "+c.calculateArea());
- System.out.println("Perimeter: "+c.calculatePerimeter());
- System.out.println(r.getShapeName());
- System.out.println("Area: "+r.calculateArea());
- System.out.println("Perimeter: "+r.calculatePerimeter());
- System.out.println(s.getShapeName());
- System.out.println("Area: "+s.calculateArea());
- System.out.println("Perimeter: "+s.calculatePerimeter());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement