Junior — Middle
Può spiegare cosa significa il concetto di classe astratta nella programmazione orientata agli oggetti?
sobes.tech AI
Risposta dell'AI
Una classe astratta nella programmazione orientata agli oggetti è una classe che non è destinata a creare istanze direttamente. Serve come modello per altre classi e può contenere metodi implementati così come metodi astratti (senza implementazione), che devono essere implementati nelle sottoclassi.
Ad esempio, in Dart (il linguaggio Flutter), una classe astratta viene dichiarata con la parola chiave abstract:
abstract class Animal {
void makeSound(); // metodo astratto
void breathe() {
print('Respira'); // metodo implementato
}
}
class Dog extends Animal {
@override
void makeSound() {
print('Bau');
}
}
void main() {
// Animal animal = Animal(); // Errore: impossibile creare un'istanza di una classe astratta
Dog dog = Dog();
dog.makeSound(); // Bau
dog.breathe(); // Respira
}
In questo modo, la classe astratta definisce un'interfaccia generale e una funzionalità di base, mentre le classi concrete implementano i dettagli.