Polymorphism
El polimorfismo permite que la misma interfaz opere sobre instancias de distintos tipos, en dos formas: estática (sobrecarga/genéricos) y dinámica (sobreescritura/métodos virtuales).
Propósito
Manejar distintos tipos mediante una interfaz unificada, mejorando la reutilización y extensibilidad del código.
Mecanismo
Polimorfismo estático: sobrecarga (mismo nombre, distintos parámetros) y genéricos (instanciados en compilación). Polimorfismo dinámico: sobreescritura (la subclase sustituye al método padre) despachada vía vtables. Go usa interfaces implementadas implícitamente; Rust usa objetos trait.
Casos de uso
- Diseño orientado a objetos
- Abstracción de interfaces
- Reutilización de código