Implications?
Polymorphism improves maintainability and extensibility, by allowing the caller to use the callee without knowing its original type :
- We can add new types and behaviours without having to make the calling part aware of the changes.
- We can alter a type or behaviour at runtime.
Polymorphic calls are generally slower than normal calls, especially when the object is referenced as an interface. But...