Volevo solo un feedback sulle mie definizioni di questi termini.
Astrazione: mostra solo informazioni pertinenti e nasconde i dettagli di implementazione. Interfacce e classi astratte sono esempi di astrazione. Permette a un utente di utilizzare una qualche forma di funzionalità senza conoscere il funzionamento interno. Ad esempio, la classe HashSet fornisce i metodi put () e get () ... Come utente non ho bisogno di sapere come la classe HashSet implementa questi metodi, ho solo bisogno di conoscere i dettagli rilevanti come i nomi dei metodi e i parametri . L'astrazione riduce la complessità complessiva di un sistema software.
Incapsulamento - il processo di associazione dei dati e delle operazioni eseguite su tali dati in una singola unità. Le classi OOP ne sono un buon esempio: tutti i dati e i metodi eseguiti su tali dati sono contenuti all'interno della classe. Inoltre, l'incapsulamento ci consente di nascondere lo stato di un oggetto rendendo privati gli attributi di un oggetto e consentendo all'oggetto stesso di eseguire azioni sugli attributi tramite metodi pubblici. L'incapsulamento aiuta sia con la sicurezza che con la modulazione.
Polymorphism: la capacità di un'entità di assumere più forme diverse, in base al contesto. Esempi di polimorfismo sono il polimorfismo di runtime e tempo di compilazione. Il polimorfismo del runtime viene ottenuto sostituendo il metodo, mentre il polimorfismo del tempo di compilazione viene ottenuto mediante l'overloading del metodo.
Ereditarietà: consente di condividere attributi e funzionalità comuni tra diverse entità. Questo supporta il riutilizzo del codice e riduce la complessità.