Design and implement a Java class to represent a 3-D geometric shape of your choice. The class should contain a constructor, appropriate data fields and methods to return the volume of the shape, and the surface area of the shape and any other methods that seem to make sense for your shape. Create a Java Test Application to construct your shape and demonstrate the successful call to its methods.