Junior
Quais aspectos da programação orientada a objetos estão presentes na linguagem Dart?
sobes.tech IA
Resposta da IA
No Dart, existem os seguintes aspetos de POO:
- Classes e objetos: A capacidade de definir classes com campos e métodos, criar instâncias de classes (objetos).
- Encapsulamento: Esconder detalhes de implementação através de modificadores de acesso (
_para membros privados) e métodos getters/setters. - Herança: Estender a funcionalidade de classes existentes usando a palavra-chave
extends. - Polimorfismo: A capacidade de tratar objetos de diferentes classes de forma uniforme através de uma interface comum ou classe base.
- Abstração: Criar classes abstratas e interfaces para definir contratos.
Exemplo de uma classe em Dart:
class Animal {
String _name; // Campo privado
Animal(this._name); // Construtor
String get name => _name; // Getter
void makeSound() {
print('Algum som genérico de animal'); // Método
}
}
Exemplo de herança:
class Dog extends Animal {
Dog(String name) : super(name); // Chamada ao construtor da classe base
@override // Sobrescrever método da classe base
void makeSound() {
print('Au au!');
}
}
Exemplo de polimorfismo:
void makeAnimalSound(Animal animal) {
animal.makeSound(); // Chamada ao método makeSound(), que pode ser diferente para diferentes tipos de Animal
}
// Uso:
// makeAnimalSound(Dog('Buddy')); // Vai imprimir "Au au!"
Dart também suporta mixins usando a palavra-chave with, o que permite reutilizar código de classes sem herança direta.