Sobes.tech
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.