An OOP method that separates algorithm from object structure.

  • Allows adding more functionality to a class without modifying its structure, thereby allowing inheriting classes to remain the same