Classes Abstratas
Em Dart, você pode criar classes abstratas usando a palavra-chave abstract
. Uma classe abstrata é uma classe que não pode ser instanciada diretamente, mas pode ser usada como uma classe base para outras classes. As classes derivadas, ou subclasses, devem implementar os membros abstratos da classe base. Aqui está um exemplo de como você pode criar uma classe abstrata em Dart:
// Definição de uma classe abstrata
abstract class Animal {
// Método abstrato que deve ser implementado pelas subclasses
void emitirSom();
// Método comum que pode ser usado sem implementação nas subclasses
void dormir() {
print('Dormindo...');
}
}
// Uma classe concreta que herda da classe abstrata Animal
class Cachorro extends Animal {
// Implementação do método abstrato emitirSom
@override
void emitirSom() {
print('Latindo...');
}
}
// Outra classe concreta que herda da classe abstrata Animal
class Gato extends Animal {
// Implementação do método abstrato emitirSom
@override
void emitirSom() {
print('Miando...');
}
}
void main() {
// Instanciando objetos das classes concretas
var cachorro = Cachorro();
var gato = Gato();
// Chamando métodos das classes concretas
cachorro.emitirSom(); // Output: Latindo...
cachorro.dormir(); // Output: Dormindo...
gato.emitirSom(); // Output: Miando...
gato.dormir(); // Output: Dormindo...
}
Neste exemplo, a classe Animal
é uma classe abstrata que contém um método abstrato chamado emitirSom
. As classes concretas Cachorro
e Gato
herdam da classe Animal
e implementam o método emitirSom
. A classe Animal
também possui um método comum chamado dormir
, que tem uma implementação padrão, mas pode ser sobrescrito pelas subclasses se necessário.
É importante notar que você não pode criar uma instância direta de uma classe abstrata em Dart. Você só pode criar instâncias das subclasses concretas que implementam todos os membros abstratos da classe abstrata.