|
Nella
risposta 20 abbiamo introdotto la programmazione ad
oggetti cioè abbiamo illustrato il suo significato generale. Si è portato
come esempio l'oggetto Cliente il quale, supponiamo, riporta
"Rossi Arturo" come nome e "via dei Giardini 34" come indirizzo del cliente. Questo è un
oggetto
singolo, altrimenti chiamato istanza. Nella pratica il cliente Rossi viene elaborato insieme a Verdi, Bianchi e
tutti gli altri clienti dell'azienda, dunque la programmazione ad oggetti
non tratta un oggetto solo ma molti
oggetti insieme ed il programmatore riunisce oggetti
simili in una classe. Il singolo oggetto, disegnato come una specie di
ciambella, confluisce nella classe. Questa
viene raffigurata mediante un rettangolo il quale simboleggia la raccolta di elementi
uguali come se formasse un mazzo
di carte.
Una classe può essere più o meno ampia dal punto di vista logico. Ad esempio Persona è la classe che raccoglie tutti coloro che operano in una scuola, mentre le classi Insegnante e Studente riguardano due gruppi più piccoli. Sussiste dunque un ordine tra la "superclasse" Persona e le "sottoclassi" Insegnante, Studente e Bidello.
Questo ordine determina una gerarchia. Di fatto non esiste nessun tipo di dipendenza tra sopra e sotto, semplicemente l'albero raffigura insiemi e sottinsiemi. L'insiemistica produce due tipi di conseguenze sul piano tecnico. A) La classe Persona contiene il nome e l'indirizzo poiché questi due dati riguardano tutte le persone indistintamente. Facciamo l'esempio che Insegnante, oltre al nome ed all'indirizzo, contenga le materie insegnate ed un metodo per registrare tali materie. Studente contiene, sempre in aggiunta al nome e cognome, l'anno e la sezione frequentata. Dunque le sottoclassi hanno più dati e più metodi rispetto alla superclasse in conseguenza del fatto che hanno significati specifici. B) La superclasse Persona ha, supponiamo, 100 istanze mentre le sottoclassi ne hanno 10, 85 e 5 rispettivamente. Dunque le sottoclassi hanno meno oggetti. Le caratteristiche A) e B) si compensano nel senso che le superclassi hanno molti oggetti con pochi attributi e servizi; le sottoclassi hanno pochi oggetti con molti contenuti. La gerarchia vuole che gli
attributi ed i metodi comuni tra sopra e sotto siano identici. Ad esempio il dato
indirizzo ed il metodo "cambia indirizzo" sono assolutamente
uguali sopra e
sotto. Invece il polimorfismo presenta una asimmetria rispetto a questa
rigida regola. Ulteriori dettagli si trovano nella risposta 77.
|
79. Potrebbe inquadrare il tema del polimorfismo in termini didattici ... |