Definition
“Each class should have only one reason to change.”
The result of implementing this is that you will have a code you will have components focused on specific tasks that can be tested and implemented individually.
Tools Used: Inheritance Composition
Note: Single Responsibility Principle can be achieved through either Inheritance or Composition. But Composition is preferred.