Describe the difference between abstraction and polymorphism, and give an example of each.
Implement the example by defining an abstract Shape interface and concrete shape classes for circles, rectangles, and triangles. Write calculate_areas(shapes) to return each shape's area in input order, rounded to six decimal places.
Each input shape is a dictionary with a type key and the dimensions required by that shape.
def calculate_areas(shapes):