Open Closed Principle
Classes should be open to extension but closed to modification. * Open to extension allows a derrived class to provided additional behaviour over that of the base class. * Closed to modification precludes functionality can be added to a derrived class from modifying the base class.