Table of Contents
Le gerarchie di tipi
Supertipi e sottotipi
Come si può utilizzare una gerarchia di tipi
Principio di sostituzione
Sommario
Tipo apparente e tipo effettivo
Tipo apparente e tipo effettivo: un esempio 1
Tipo apparente e tipo effettivo: un esempio 2
Dispatching
Definizione di una gerarchia di tipi: specifica
Definizione di una gerarchia di tipi: implementazione
Gerarchie di tipi in Java
Gerarchie di tipi in Java: supertipi 1
Gerarchie di tipi in Java: supertipi 2
Gerarchie di tipi in Java: sottotipi 1
Gerarchie di tipi in Java: sottotipi 2
Un esempio di gerarchia con supertipo classe concreta
Specifica del supertipo
Implementazione del supertipo
Un sottotipo: MaxIntSet
Specifica del sottotipo
Implementazione di MaxIntSet
Implementazione del sottotipo 1
Implementazione del sottotipo 2
Implementazione del sottotipo 3
Implementazione del sottotipo 4
Funzione di astrazione di sottoclassi di una classe concreta
Invariante di rappresentazione di sottoclassi di una classe concreta
repOk di sottoclassi di una classe concreta
repOk di MaxIntSet
Cosa succede se il supertipo fa vedere la rappresentazione?
Ricostruiamo i tipi eccezione
Una eccezione non banale
Classi astratte come supertipi
Perché può convenire trasformare IntSet in una classe astratta
Specifica del sottotipo
IntSet come classe astratta
Implementazione di IntSet come classe astratta
Implementazione della sottoclasse SortedIntSet 1
Implementazione della sottoclasse SortedIntSet 2
Gerarchie di classi astratte
Interfacce
Ereditarietà multipla
|