Antes de sumergirse en la creación de aplicaciones con Flutter, es importante tener una comprensión sólida del lenguaje de programación Dart, que es la columna vertebral de Flutter. Dos conceptos fundamentales en Dart, y en la programación orientada a objetos en general, son la herencia y el polimorfismo. Exploremos estos conceptos en detalle.
Herencia
La herencia es un principio fundamental de la programación orientada a objetos que permite que una clase herede las propiedades y métodos de otra clase. La clase que se hereda a menudo se denomina "clase principal" o "superclase", mientras que la clase heredera se denomina "clase secundaria" o "subclase".
En Dart, la herencia se logra utilizando la palabra clave 'extends'. Por ejemplo, si tenemos una clase 'Animal' con propiedades como 'nombre' y 'edad' y métodos como 'comer' y 'dormir', podemos crear una nueva clase 'Perro' que hereda de 'Animal' de la siguiente manera: < /p>
clase Animal { Nombre de cadena; edad interna; comer() { print('$nombre está comiendo.'); } dormir() { print('$nombre está durmiendo.'); } } clase Perro extiende Animal { ladrar() { print('$nombre está ladrando.'); } }
La clase 'Perro' ahora tiene acceso a todas las propiedades y métodos de la clase 'Animal', además de todo lo que ella misma defina. Esto es útil porque nos permite reutilizar código y organizar nuestro código de forma lógica y jerárquica.
Polimorfismo
El polimorfismo es otro principio fundamental de la programación orientada a objetos que permite que una clase tenga muchas formas. Esto puede significar que una clase secundaria puede anular un método de clase principal o que un método puede procesar diferentes tipos de objetos.
En Dart, el polimorfismo se logra utilizando la palabra clave 'override'. Por ejemplo, si queremos que la clase 'Perro' tenga una versión diferente del método 'eat' de la clase 'Animal', podemos hacerlo de la siguiente manera:
clase Perro extiende Animal { @anular comer() { print('$nombre está comiendo comida para perros.'); } }
Ahora, cuando llamemos al método 'eat' en un objeto de la clase 'Perro', veremos el mensaje 'el nombre está comiendo comida para perros' en lugar de 'el nombre está comiendo'.
El polimorfismo también permite que un método procese diferentes tipos de objetos. Por ejemplo, podemos tener un método 'makeAnimalEat' que acepte un objeto de la clase 'Animal' y llame a su método 'eat'. Este método funcionará tanto para objetos de la clase 'Animal' como para objetos de cualquier clase que herede de 'Animal', como la clase 'Perro'.
hacerAnimalEat(Animal animal) { animal.comer(); }
En resumen, herencia y polimorfismo son conceptos fundamentales en Dart que nos permiten reutilizar y organizar nuestro código de manera efectiva. Son fundamentales para crear aplicaciones usando Flutter y son conceptos que usarás una y otra vez al crear tus propias aplicaciones.