La programación orientada a objetos (POO) es un paradigma de programación que utiliza "objetos" (estructuras de datos que consisten en campos y métodos de datos junto con sus interacciones) para diseñar aplicaciones y programas de computadora. En Dart, como en muchos otros lenguajes orientados a objetos, la herencia juega un papel crucial en la organización y estructura del código. En esta sección, exploraremos la herencia de Dart y cómo se puede utilizar al crear aplicaciones con Flutter.

Herencia en Dart

La herencia es un principio fundamental de la programación orientada a objetos que permite que una clase herede los campos y métodos de otra. En Dart, la herencia se implementa mediante la palabra clave 'extiende'. Cuando se declara que una clase hereda de otra clase, se convierte en una subclase y la clase de la que hereda se convierte en la superclase.

clase Animal {
  respiración vacía() {
    print('Respirando...');
  }
}

clase Perro extiende Animal {
  corteza vacía() {
    print('Ladrando...');
  }
}

En el ejemplo anterior, la clase Perro hereda de la clase Animal. Esto significa que un objeto Perro puede realizar tanto la acción de "ladrar" como la acción de "respirar".

Anulaciones de métodos

En Dart, una subclase puede anular un método de su superclase utilizando la palabra clave 'override'. Esto permite que la subclase proporcione una implementación diferente de un método que ya proporciona su superclase.

clase Animal {
  respiración vacía() {
    print('Respirando...');
  }
}

clase Perro extiende Animal {
  corteza vacía() {
    print('Ladrando...');
  }

  @anular
  respiración vacía() {
    super.respirar();
    print('...con un hueso en la boca');
  }
}

En el ejemplo anterior, la clase Perro anula el método 'respirar' de la clase Animal. Llamar al método 'super.breathe()' invoca la implementación original del método 'breathe' en la superclase Animal, y luego la clase Perro le agrega su propia funcionalidad.

Herencia y aleteo

Al crear aplicaciones con Flutter, la herencia se puede utilizar para reutilizar y ampliar el comportamiento y la apariencia de los widgets. Por ejemplo, puedes subclasificar un widget con estado para agregar funcionalidad adicional o personalizar su apariencia.

clase CustomButton extiende RaisedButton {
  Botón personalizado({@required VoidCallback onPressed})
      : súper(
            onPressed: onPressed,
            color: Colores.azul,
            niño: Texto(
              'Botón personalizado',
              estilo: TextStyle (color: Colores.blanco),
            ));
}

En el ejemplo anterior, la clase 'CustomButton' hereda de 'RaisedButton' y personaliza su color y texto. La herencia le permite crear widgets personalizados que se adaptan perfectamente a su aplicación sin tener que reescribir todo el código de su widget.

Conclusión

La herencia es una característica poderosa de la programación orientada a objetos que permite a los desarrolladores reutilizar y ampliar el código existente. En Dart y Flutter, es una herramienta esencial para organizar código y crear widgets personalizados. Comprender la herencia y cómo usarla de manera efectiva puede ayudar a mejorar la eficiencia y la calidad del código al crear aplicaciones con Flutter.

Ahora responde el ejercicio sobre el contenido:

¿Cuál es el papel de la herencia en la programación orientada a objetos en Dart y Flutter?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Introducción a la programación orientada a objetos en Dart: polimorfismo

Siguiente página del libro electrónico gratuito:

62Introducción a la programación orientada a objetos en Dart: polimorfismo

3 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.