The open-closed principle might be the most important S.O.L.I.D. design principle. But what is it? How can you extend programs without changing them? Sounds like a contradiction, right? Learn how to minimize code changes when changing existing systems by using Polymorphism.