Implement a shape hierarchy. you must have your superclass **shape** and 2 subclasses **two-dimensional shape** and **three-dimensional shape**. Under two-dimensional shape, you have other subclasses, **circle, square, and triangle**. Under the three-dimensional shape you have the **sphere, cube, and tetrahedron**. Each two-dimensional shape should contain a method *getArea* to calculate the area of the two-dimensional shape. Each three-dimensional shape should have a method *getArea* and *getVolume* to calculate the surface area and volume, respectively, of the three-dimensional shape. Create a program that uses an array of shape references to objects of each concrete class in the hierarchy. The program should print a text description of the object to which each array element refers. Also, in the loop that processes all the shapes in the array, determine whether each shape is a two-dimensional shape or a three-dimensional shape. If a shape is a two-dimensional shape, display it's area. If a shape is a three-dimensional shape, display its area and volume.

Can you please help me with this problem? I'm finding it hard to figure out what to do. Please help I'm still just a beginner. Thank you!