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