IAnimation <|.. Shape IComparable <|.. Shape Shape <|-- Rectangle Rectangle <|-- Cube class IAnimation{ «Interface» +Talk()* +FlipRight()* } class IComparable~Shape~{ «Interface» +CompareTo(arg : Shape) int* } class Shape{ «Abstract» -color: string -bool: filled +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() }