Create an abstract class Shape with the following specifications:
An abstract method surface_area () of return type double
An abstract method volume() of return type double
Put your code in a Java source file named Shape.java.
I.
Create a class Sphere that extends the Shape class with the following specifications:
Attributes:
Radius
Constructor:
Implement a parameterized constructor needed to initialize the data.
toString:
Implement a toString method that prints out the surface area and volume.
Implement methods to compute the surface area and volume.
II.
Create a class Cylinder that extends the Shape class with the following specifications:
Attributes:
Radius, height both of type double
Constructor:
Implement a parameterized constructor to initialize the data.
toString:
Implement a toString method that prints out the surface area and volume.
Implement methods to compute the surface area and volume.
III.
Create a class Cone that extends the Shape class with the following specifications:
Attributes:
Radius, height both of type double
Constructor:
Implement a parameterized constructor to initialize the data.
toString:
Implement a toString method that prints out the surface area and volume.
Implement methods to compute the surface area and volume.
IV.
Create a driver class named ShapeArray with the following specifications:
Instantiate one sphere.
Instantiate one cylinder.
Instantiate one cone.
Store the class instances into an array named shapeArray.
Loop through the array and print out the instance data of each object using the object instances toString method.
Show a Unified Modeling Language (UML) diagram of your project.
Condense your source files and UML diagram as a zipped folder and submit the zipped file as your critical thinking assignment (CTA).
Students must use appropriate version control for all programmatic assignments created. GIT repositories should be established and screen captures of repositories submitted with each assignment.