Interface Segregation Principle means a client should not depend on something it doesn't need.
A superclass should be replaceable with objects of its subclasses without affecting the correctness ...Read more