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
*/
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.