Software Development, Software Engineering, Software Architecture, Software Design, Clean Code.
should be able to use any subclass instead of a parent class and expect it to work correctly. This means a program using a base class type should still work if a derived (subclass) type is passed to it without knowing it. Interface Segregation Principle (ISP): A class should not be forced to