Shapes Goals Students will demonstrate their ability to use abstract classes and interfaces. Skills Abstract classesInterfaces Program Details Create a program with the following abstract classes and interfaces.Abstract class ShapeAbstract method: float getCircumference();Interface twoDMethod: float getArea()Interface threeDMethod: float getVolume()Method: float getSurfaceArea()Interface parallelogramMethod: float getSides: returns all four sides of the parallelogramMethod: float getAngles: returns the two angles inside the parallelogram.Interface ellipseMethod: float getAxes: returns both the horizontal and vertical axes of an ellipseInterface triangleMethod: float getHeightMethod: float getWidthMethod: float getSides: returns all three sides of the triangle.Classesrectangle extends Shape implements 2D and parallelogramsquare extends rectanglerhombus extends Shape implements 2D and parallelogramrightTriangle extends Shape implements 2D and triangleisosceleslTriangle extends Shape, implements 2D and triangleequilateralTriangle extends Shape, implements 2D and triangleCircle extends Shape implements 2D and ellipseOval extends Shape implements 2D and ellipseCube extends Square implements 3DCylinder extends Circle implements 3DMain ProgramCreates the 10 shapes.Outputs the 10 shapes values as appropriate (length, width, height, circumference, area, surface area, and/or volume) Resources Edhesive Term 2 Lesson 9: Abstract methods and classes Lesson 11: Interfaces