Clases y métodos abstractos
Definir lo que deben implementar las subclases.
Clases y métodos abstractos 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.
Qué significa abstract
Una clase abstract es un modelo que se puede describir, pero nunca crear directamente. Existe para extenderse, no para instanciarse por sí sola.
Marcar una clase como abstract
Añada la palabra clave abstract delante de class. Esto indica a Dart que la clase está incompleta y pensada para servir como base compartida.
abstract class Shape {
double area();
}Los métodos abstract no tienen cuerpo
Un método abstract declara un nombre y una firma, pero termina con un punto y coma, dejando el trabajo real a cada subclase.
abstract class Shape {
double area(); // no body
}No puede instanciarla
Intentar escribir Shape() produce un error de compilación. Dart lo impide porque una clase abstract está incompleta y no tiene una implementación real.
var s = Shape(); // error: abstractLas subclases completan los espacios
Una subclase usa extends y debe proporcionar un cuerpo para cada método abstract, convirtiendo el modelo en algo utilizable.
class Circle extends Shape {
final double r;
Circle(this.r);
double area() => 3.14 * r * r;
}También se permiten métodos concretos
Una clase abstract puede incluir métodos concretos completamente escritos. Las subclases los heredan directamente y solo deben completar los abstract.
abstract class Shape {
double area();
void describe() => print('Area is ' + area().toString());
}Campos en clases abstract
Las clases abstract también pueden contener campos y constructores. Se ejecutan cuando se crea una subclase, por lo que el estado compartido reside en la clase base.
abstract class Shape {
final String name;
Shape(this.name);
}El compilador impone el contrato
Si una subclase olvida un método abstract, Dart informa de un error antes de que llegue a ejecutar el código. El contrato se comprueba automáticamente.
class Square extends Shape {} // error: area() missingPor qué usar clases abstract
Permiten que muchos tipos compartan una misma estructura y garantizan que cada uno proporcione su propio comportamiento. Puede diseñar un contrato claro una vez y reutilizarlo en todas partes.
Getters abstract
Los métodos no son lo único que puede dejar abstract. Un getter sin cuerpo funciona de la misma manera y debe ser definido por las subclases.
abstract class Shape {
String get label;
}Mantener referencias abstract
Puede guardar cualquier subclase en una variable cuyo tipo sea la clase abstract. El tipo promete un comportamiento sin indicar una clase concreta.
Shape s = Circle(2);
print(s.area());Comprobación rápida
Una pregunta rápida sobre las clases abstract.
Repaso
Las clases abstract son modelos que se extienden, no que se instancian. Los métodos abstract no tienen cuerpo, y las subclases concretas deben implementarlos. ¡Buen trabajo! 🎯
Aprende Dart con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 30
- Lecciones
- 120
Preguntas frecuentes
¿La lección «Clases y métodos abstractos» es gratis?
Sí — el texto completo de «Clases y métodos abstractos» 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 «Clases y métodos abstractos»?
Definir lo que deben implementar las subclases. 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 «Clases y métodos abstractos»?
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
- Clases y métodos abstractos
- Interfaces implícitas e implements
- Polimorfismo mediante tipos compartidos
- Composición en lugar de herencia