I termini "astrazione" e "tipi di dati astratti" sono collegati tra loro?

1

Sono nuovo di OOP. Ho letto definiton di entrambi i termini in molti articoli e libri diversi, ma non riesco ancora a capire se esiste una relazione tra loro.

    
posta saidfagan 15.08.2016 - 12:30
fonte

1 risposta

5

Nei linguaggi OOP con l'ereditarietà del tipo, "astrazione" viene spesso utilizzata per indicare la relazione tra sottotipo e supertipo. Ma questo è un significato tecnico relativamente ristretto.

"Abstraction" è un concetto molto più ampio e significa l'atto di descrivere qualcosa attraverso le sue proprietà essenziali ignorando i dettagli che non sono rilevanti nel contesto di cui stai parlando.

I tipi di dati astratti sono un buon esempio di astrazione: sono definiti solo attraverso le operazioni supportate, senza specificare come tali operazioni siano implementate. L'abstract datatype "list" supporta ottenere, inserire e rimuovere elementi tramite un indice, e questo è tutto ciò che devi sapere a quel livello.

Ora in quasi tutti i principali linguaggi OO, i tipi di dati astratti sono di fatto modellati come un tipo ereditato da implementazioni concrete, ma è esso stesso un dettaglio di implementazione di questi linguaggi, non pertinente al concetto di tipi di dati astratti.

    
risposta data 15.08.2016 - 12:52
fonte

Leggi altre domande sui tag