: Enabling different objects to respond to the same message in unique ways (e.g., a "Shape" class where "Circle" and "Square" draw differently).
: Using abstract thinking and minimal interfaces. : Enabling different objects to respond to the