0Pricing
Dart Academy · Lección

Polimorfismo mediante tipos compartidos

Programar para un tipo, no para una clase.

Polimorfismo mediante tipos compartidos es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Dart Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Dart Academy incluye 4 lecciones en total.

Qué significa el polimorfismo

El polimorfismo permite que un tipo represente a muchos. Se llama a un método mediante un tipo compartido y cada objeto responde a su manera.

Programar para un tipo

En lugar de indicar una clase concreta, se depende de un supertipo compartido. Su código funciona con cualquier elemento que tenga esa estructura.

void render(Shape s) => print(s.area());

Un tipo base compartido

Comience con una base abstracta que declare el método común que cada subtipo proporcionará de forma diferente.

abstract class Shape {
  double area();
}

Muchos subtipos, una forma

Cada subtipo implementa area a su manera, pero todos siguen tratándose como un Shape.

class Circle extends Shape {
  double area() => 28.3;
}

Despacho dinámico

En tiempo de ejecución, Dart elige el método del objeto real. Este despacho hace que la misma llamada ejecute código diferente según el objeto.

Shape s = Circle();
s.area(); // runs Circle.area

Una lista de distintas formas

Como comparten un tipo, puede recopilar objetos mezclados en una sola List y tratarlos de manera uniforme.

List<Shape> shapes = [Circle(), Square()];

Iterar polimórficamente

Un solo bucle gestiona todas las formas. Nunca necesita comprobar la clase concreta: simplemente se ejecuta el area correcto.

for (var s in shapes) {
  print(s.area());
}

Abierto a la extensión

Puede añadir más adelante un subtipo de Shape completamente nuevo y los bucles existentes lo usarán de inmediato. El polimorfismo mantiene el código abierto al crecimiento.

class Triangle extends Shape {
  double area() => 12.0;
}

Las interfaces funcionan igual

Los tipos compartidos también pueden provenir de implements. Cualquier clase que implemente la interfaz se integra directamente en el mismo código.

void log(Printable p) => p.printOut();

No hacen falta comprobaciones de tipo

El buen código polimórfico rara vez usa comprobaciones con is. El tipo compartido ya garantiza que el método existe, lo que mantiene limpia la lógica.

Por qué es importante

El polimorfismo elimina largas cadenas de if-else y switches repetidos. Puede escribir código flexible que se adapte a nuevos tipos sin modificarlo. 🌱

Comprobación rápida

Una pregunta rápida sobre el polimorfismo.

Resumen

El polimorfismo consiste en programar para un tipo compartido mientras cada objeto se comporta a su manera. Mantiene el código flexible y abierto a nuevos subtipos. ✨

Preguntas frecuentes

¿La lección «Polimorfismo mediante tipos compartidos» es gratis?

Sí — el texto completo de «Polimorfismo mediante tipos compartidos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Dart Academy, actualiza a CoddyKit PRO. El curso de Dart Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Polimorfismo mediante tipos compartidos»?

Programar para un tipo, no para una clase. Practicas Dart Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Dart Academy?

No se requiere experiencia previa. Dart Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Polimorfismo mediante tipos compartidos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Dart Academy?

Sí. Cada lección de Dart Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Clases y métodos abstractos
  2. Interfaces implícitas e implements
  3. Polimorfismo mediante tipos compartidos
  4. Composición en lugar de herencia
← Volver a Dart Academy