0Pricing
Dart Academy · Lección

Llamar a super y encadenar constructores

Acceder al padre durante la construcción.

Llamar a super y encadenar constructores es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 2 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.

Orden de construcción

Al crear una subclase, primero debe configurarse su clase principal. Dart garantiza que el constructor de la clase principal se ejecute antes de que comience el cuerpo de la clase secundaria. 🏗️

Conozca super

La palabra clave super hace referencia a la parte de la clase principal de su objeto. Se utiliza para acceder al constructor, los métodos y los campos de la clase principal desde el interior de la clase secundaria.

El super() implícito

Si no escribe nada, Dart llama automáticamente al constructor sin argumentos de la clase principal. Este super() invisible explica por qué las clases principales siempre se inicializan primero.

class Animal { Animal() => print('Animal'); }
class Dog extends Animal { Dog(); }

Llamar a super explícitamente

Cuando la clase principal necesita argumentos, debe llamar a super(...) en la lista de inicialización del constructor, después de dos puntos. Así reenvía los valores por la cadena.

class Dog extends Animal {
  Dog(String name) : super(name);
}

Dónde va super

La llamada a super se encuentra en la lista de inicialización, nunca en el cuerpo del constructor. Cuando se ejecuta el cuerpo, la clase principal ya está completamente construida.

Dog(String name, this.breed) : super(name);

Parámetros super

El Dart moderno permite reenviar argumentos directamente a la clase principal mediante super.field. Esto elimina código repetitivo de la lista de parámetros.

class Dog extends Animal {
  Dog(super.name);
}

Llamar a métodos con super

Dentro de un método reemplazado, super.method() ejecuta la versión original de la clase principal. Así amplía el comportamiento en lugar de reemplazarlo por completo.

@override
void speak() {
  super.speak();
  print('extra');
}

Subir por la jerarquía

Cuando hay varios niveles de herencia, cada constructor llama a su propia clase principal. Esta cadena llega hasta la parte superior y luego ejecuta los cuerpos de vuelta hasta su clase.

Orden de inicialización

El orden completo es: primero la lista de inicialización y super, después el cuerpo de la clase principal y, por último, el cuerpo de la clase secundaria. Los campos están listos como final antes de que se ejecute cualquier cuerpo.

Cuando la clase principal necesita argumentos

Si la clase principal no tiene un constructor predeterminado, debe llamar a super con los argumentos correctos. Si lo omite, Dart informa de un error de compilación.

Redirección con this

Dentro de una misma clase, un constructor puede llamar a otro mediante this(...). Esto es una cadena entre constructores hermanos, distinta de subir en la jerarquía con super.

Point.origin() : this(0, 0);

Comprobación rápida

Piense dónde debe aparecer la llamada al constructor de la clase principal.

Repaso

Llamó a super para ejecutar constructores y métodos de la clase principal, reenvió valores con parámetros super y redirigió constructores hermanos con this. 🔗

Preguntas frecuentes

¿La lección «Llamar a super y encadenar constructores» es gratis?

Sí — el texto completo de «Llamar a super y encadenar constructores» 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 «Llamar a super y encadenar constructores»?

Acceder al padre durante la construcción. 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 2 de 4.

¿Cuánto tiempo toma la lección «Llamar a super y encadenar constructores»?

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. extends y sobrescritura de métodos
  2. Llamar a super y encadenar constructores
  3. Mixins con la palabra clave with
  4. Restricciones on y orden de los mixins
← Volver a Dart Academy