IAnimation <|.. Shape IComparable <|.. Shape Shape <|-- Rectangle Rectangle <|-- Cube class IAnimation{ <> +Talk()* +FlipRight()* } class IComparable~Shape~{ <> +CompareTo(arg : Shape) int* } class Shape{ <> -color: string -filled: bool +GetColor() string +GetFilled() bool +Shape(color: string, filled: bool) +ToString() string +Area() double* +Talk() * +FlipRight() * +CompareTo(shapeP : Shape) int } class Rectangle{ -width: int -length: int +«property» Width: int +«property» Length: int +Talk() +Draw() +FlipRight() +Area() double +Rectangle(wP : int, lP : int, cP : string, fP : bool) +ToString() string } class Cube{ -height:int +«property» Height: int +Cube(hP : int, wP : int, cP: bool, fP:bool) +Talk() }