Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Develop the ‘Shape’ application such that: Implement an array of objects of vari

ID: 3697493 • Letter: D

Question

Develop the ‘Shape’ application such that: Implement an array of objects of various types (all five classes), in any order. In some type of a looping structure, demonstrate polymorphism by calling all three of the methods, draw, move, and erase. That is, within the curly braces, there will be only three method calls. Verify that the output messages come from all three methods, from all seven classes. The only class that you should have to develop for this class will be the test application. The seven classes from last week should remain unchanged.

THIS IS MY CODE, PLEASE ANSWER THE ABOVE QUESTION USING THS CODE:

//Shape.java

// base class

public abstract class Shape

{

     Shape()

     {

          System.out.println("Base class shape");

     }

     // overridden methods

     public abstract void draw();

     public abstract void move();

     public abstract void erase();

}

// Rectangle.java

// class rectangle

public class Rectangle extends Shape

{

     Rectangle()

     {

          super();

          System.out.println("Rectangle-constructor");

     }

     @Override

     // overridden draw method to display message

     public void draw()

     { System.out.println("Rectangle-draw method");}

     @Override

     // overridden erase method to display message

     public void erase()

     { System.out.println("Rectangle-erase method");}

     @Override

     // overridden move method to display message

     public void move()

     { System.out.println("Rectangle-move method");}

}

//Ellipse.java

// class Ellipse

public class Ellipse extends Shape

{

     Ellipse()

     {

          super();

          System.out.println("Ellipse-constructor");

     }

     @Override

     // overridden draw method to display message

     public void draw()

     {

          System.out.println("Ellipse-draw method");

     }

     @Override

     // overridden erase method to display message

     public void erase()

     {

          System.out.println("Ellipse-erase method");

     }

     @Override

     // overridden move method to display message

     public void move()

     {

          System.out.println("Ellipse-move method");

     }

}

// Triangle.java

// class Triangle

public class Triangle extends Shape

{

     Triangle()

     {

          super();

          System.out.println("Triangle-constructor");

     }

     @Override

     // overridden draw method to display message

     public void draw()

     {

          System.out.println("Triangle-draw method");

     }

     @Override

     // overridden erase method to display message

     public void erase()

     {

          System.out.println("Triangle-erase method");

     }

     @Override

     // overridden move method to display message

     public void move()

     {

          System.out.println("Triangle-move method");

     }

}

//Square.java

// class Square

public class Square extends Rectangle

{

     Square()

     {

          super();

          System.out.println("Square-constructor");

     }

     @Override

     // overridden draw method to display message

     public void draw()

     {

     System.out.println("Square-draw method");

     }

     @Override

     // overridden erase method to display message

     public void erase()

     {

     System.out.println("Square-erase method");

     }

    

     @Override

     // overridden move method to display message

     public void move()

     {

     System.out.println("Square-move method");

     }

}

//Circle.java

// class Circle

public class Circle extends Ellipse

{

     Circle()

     {

          super();

          System.out.println("Circle-constructor");

     }

     @Override

     // overridden draw method to display message

     public void draw()

     {

     System.out.println("Circle-draw method");

     }

     @Override

     // overridden erase method to display message

     public void erase()

     {

     System.out.println("Circle-erase method");

     }

    

     @Override

     // overridden move method to display message

     public void move()

     {

     System.out.println("Circle-move method");

     }   

}

//ShapeTest.java

// class to instantiate an object for each class

public class ShapeTest

{

     // main method

     public static void main(String[] args)

     {

          Rectangle recshp = new Rectangle();

          recshp.draw();

          recshp.move();

          recshp.erase();

          System.out.println();

          Ellipse elshp = new Ellipse();

          elshp.draw();

          elshp.move();

          elshp.erase();

          System.out.println();

          Triangle trishp = new Triangle();

          trishp.draw();

          trishp.move();

          trishp.erase();

          System.out.println();

          Square sqshp = new Square();

          sqshp.draw();

          sqshp.move();

          sqshp.erase();

          System.out.println();

          Circle cirshp = new Circle();

          cirshp.draw();

          cirshp.move();

          cirshp.erase();

     }

}

Explanation / Answer

//ShapeTest.java

//class to instantiate an object for each class

public class ShapeTest

{
   // main method

   public static void main(String[] args)

   {

        Rectangle recshp = new Rectangle();

        Ellipse elshp = new Ellipse();

        Triangle trishp = new Triangle();

        Square sqshp = new Square();

        Circle cirshp = new Circle();
      
        // creating array of different shapes
        Shape[] shapes = {
               cirshp,
               sqshp,
               trishp,
               elshp,
               recshp
        };
      
        //now calling three methods on each element of shapes
        for(Shape shape: shapes){
           shape.draw();
           shape.move();
           shape.erase();
           System.out.println();
        }

   }

}

/*

Output:

Base class shape
Rectangle-constructor
Base class shape
Ellipse-constructor
Base class shape
Triangle-constructor
Base class shape
Rectangle-constructor
Square-constructor
Base class shape
Ellipse-constructor
Circle-constructor
Circle-draw method
Circle-move method
Circle-erase method

Square-draw method
Square-move method
Square-erase method

Triangle-draw method
Triangle-move method
Triangle-erase method

Ellipse-draw method
Ellipse-move method
Ellipse-erase method

Rectangle-draw method
Rectangle-move method
Rectangle-erase method

*/