Discuti i principi della programmazione orientata agli oggetti.
La programmazione orientata agli oggetti (OOP) è un paradigma di programmazione basato sul concetto di "oggetti", che possono contenere campi dati e codice, sotto forma di procedure note come metodi. I principi dell'OOP sono l'incapsulamento, l'astrazione, il polimorfismo e l'ereditarietà. L'incapsulamento è la capacità di combinare metodi e dati in un'unica unità, l'astrazione è la capacità di nascondere i dettagli di un'implementazione e mostrare solo le caratteristiche essenziali, il polimorfismo è l'uso di un'interfaccia singola per più tipi di dati e l'ereditarietà è la capacità di una classe di estendere la funzionalità di un'altra.