Junior
¿Qué aspectos de la programación orientada a objetos están presentes en el lenguaje Dart?
sobes.tech AI
Respuesta de la IA
En Dart, existen los siguientes aspectos de la POO:
- Clases y objetos: La capacidad de definir clases con campos y métodos, crear instancias de clases (objetos).
- Encapsulación: Ocultar detalles de implementación mediante modificadores de acceso (
_para miembros privados) y métodos getters/setters. - Herencia: Ampliar la funcionalidad de clases existentes usando la palabra clave
extends. - Polimorfismo: La capacidad de tratar objetos de diferentes clases de manera uniforme a través de una interfaz común o clase base.
- Abstracción: Crear clases abstractas e interfaces para definir contratos.
Ejemplo de una clase en Dart:
class Animal {
String _name; // Campo privado
Animal(this._name); // Constructor
String get name => _name; // Getter
void makeSound() {
print('Algún sonido genérico de animal'); // Método
}
}
Ejemplo de herencia:
class Dog extends Animal {
Dog(String name) : super(name); // Llamada al constructor de la clase base
@override // Sobrescribir método de la clase base
void makeSound() {
print('¡Guau!');
}
}
Ejemplo de polimorfismo:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Llamada al método makeSound(), que puede ser diferente para distintos tipos de Animal
}
// Uso:
// makeAnimalSound(Dog('Buddy')); // Mostrará "¡Guau!"
Dart también soporta mixins usando la palabra clave with, lo que permite reutilizar código de clases sin herencia directa.