Nella programmazione orientata agli oggetti, le subroutine chiamate “metodi” vengono utilizzate per eseguire funzioni in un programma. Questi metodi consistono in istruzioni di programmazione che eseguono un’azione, impostano parametri di input per personalizzare le azioni e possono restituire o restituire un valore di qualche tipo di oggetto o classe. I metodi sono le azioni eseguite in un programma da una certa classe o all’interno di un oggetto e vengono utilizzati per accedere e manipolare i dati memorizzati all’interno di un oggetto. Ci sono molti metodi diversi e ognuno ha un uso particolare. Un tipo specifico eseguito da una superclasse astratta ed ereditato dalle sottoclassi è noto come metodo astratto.
In genere, il metodo abstract esegue poca o nessuna implementazione all’interno della sua super classe astratta. I codici contenuti in questo tipo di metodo sono considerati codici fittizi e non vengono implementati di per sé. Ciò non significa che il metodo astratto specifico in una particolare classe astratta non venga utilizzato. Piuttosto, il metodo astratto funge da modello o segnaposto per le sottoclassi per completare l’implementazione del metodo.
Le super classi possono contenere più sottoclassi e tutte le sottoclassi di una super classe hanno determinati stati e comportamenti simili. Le classi astratte, quindi, sono un tipo di classe virtuale che esibisce l’ereditarietà virtuale. Ciò significa che qualsiasi sottoclasse derivata da una superclasse eredita le restrizioni della superclasse da cui deriva. Pertanto, i metodi nelle sottoclassi sono derivati da metodi astratti di super classi. Durante la programmazione e l’utilizzo di metodi astratti, il programmatore deve dichiarare la classe abstract anziché virtual.
Ad esempio, una super classe di “Oggetti grafici” contiene le sottoclassi “Cerchio”, “Quadrato”, ecc. Pertanto, tutti i cerchi e i quadrati hanno gli stessi stati – orientamento, posizione, colore di riempimento, colore della linea – e comportamenti – moveTo , ridimensiona, ruota, disegna — come “Oggetti grafici”. Tutte le sottoclassi di questa super classe hanno le stesse qualità, ma sono implementate in modi diversi. Il metodo astratto della super classe fornisce le basi senza implementazione e le sottoclassi eseguono l’implementazione effettiva utilizzando gli stessi metodi. Anche se ogni sottoclasse utilizza lo stesso metodo della classe astratta, definisce in modo univoco il modo in cui verrà eseguito il metodo.
L’utilizzo di un metodo astratto consente la generalizzazione al livello superiore, o superclasse, e la specificazione ai livelli inferiori, o sottoclassi. Questa gerarchia riduce al minimo la quantità di programmazione del metodo per ogni sottoclasse specifica. L’utilizzo di questi metodi consente anche l’idempotenza delle sottoclassi, il che significa che se un metodo viene implementato più e più volte, il risultato è lo stesso ogni volta.