0Pricing
Dart Academy · Lección

extends y sobrescritura de métodos

Compartir y especializar el comportamiento del padre.

extends y sobrescritura de métodos es una lección gratuita de Dart Academy en CoddyKit. Esta es la lección 1 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.

Compartir comportamiento

Cuando dos clases comparten la mayor parte de su comportamiento, puede escribirlo una sola vez y reutilizarlo. Dart llama a esto inheritance, y así evita copiar y pegar. 🌱

La palabra clave extends

Herede escribiendo extends después del nombre de una clase. La nueva clase es una clase hija que obtiene automáticamente los campos y métodos de su clase padre.

class Animal {}
class Dog extends Animal {}

Clase padre y clase hija

La clase que extiende es la superclass (padre). La nueva clase es la subclase (hija). Un Dog es un Animal, pero no todo Animal es un Dog.

Miembros heredados

Una clase hija puede usar de inmediato los métodos públicos de la clase padre como si fueran propios. Escriba el comportamiento inherited una sola vez y todas las subclases se beneficiarán de él.

class Animal {
  void breathe() => print('breathing');
}
class Dog extends Animal {}
// Dog().breathe() works

Añadir comportamiento nuevo

Una subclase también puede añadir sus propios métodos a lo que hereda. La clase hija sigue siendo un Animal, pero obtiene capacidades extra que la clase padre no tenía.

class Dog extends Animal {
  void bark() => print('Woof!');
}

Sobrescribir un método

A veces, la versión de la clase principal no es adecuada para la clase secundaria. Override permite que una subclase reemplace un método heredado por su propia implementación.

class Animal {
  void speak() => print('...');
}
class Cat extends Animal {
  void speak() => print('Meow');
}

El marcador @override

Añada la anotación @override encima del método reemplazado. Indica al analizador que compruebe que la clase principal realmente tiene ese método, lo que permite detectar errores tipográficos desde el principio.

class Cat extends Animal {
  @override
  void speak() => print('Meow');
}

Se requiere la misma firma

Un override debe conservar el mismo nombre y una firma compatible. Si cambia los parámetros o el tipo de retorno sin cuidado, Dart lo rechazará.

Reutilizar la versión de la clase principal

Dentro de un override todavía puede llamar a la versión original mediante super y después añadir sus propios pasos. Así amplía el comportamiento en lugar de descartarlo.

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

El polimorfismo en acción

Guarde objetos secundarios en una variable de tipo Animal y llame a speak: cada uno ejecutará su propia versión. Esto es el polimorfismo, el verdadero beneficio de los overrides.

Animal a = Cat();
a.speak(); // Meow

Herencia única

Una clase de Dart puede extender exactamente una superclase, nunca dos. Para compartir código entre jerarquías no relacionadas, más adelante recurrirá a los mixins.

Comprobación rápida

Reemplaza un método heredado en una subclase. ¿Qué hace?

Repaso

Usó extends para heredar los miembros de una clase principal, añadió métodos nuevos y reemplazó otros con @override. Ese es el fundamento de la reutilización de clases. 🎉

Preguntas frecuentes

¿La lección «extends y sobrescritura de métodos» es gratis?

Sí — el texto completo de «extends y sobrescritura de métodos» 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 «extends y sobrescritura de métodos»?

Compartir y especializar el comportamiento del padre. 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 1 de 4.

¿Cuánto tiempo toma la lección «extends y sobrescritura de métodos»?

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