La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Principio di sostituzione Se un oggetto di tipo S può essere sostituito ovunque ci si aspetti un oggetto di tipo T, allora S è una sottoclasse corretta.

Presentazioni simili


Presentazione sul tema: "1 Principio di sostituzione Se un oggetto di tipo S può essere sostituito ovunque ci si aspetti un oggetto di tipo T, allora S è una sottoclasse corretta."— Transcript della presentazione:

1 1 Principio di sostituzione Se un oggetto di tipo S può essere sostituito ovunque ci si aspetti un oggetto di tipo T, allora S è una sottoclasse corretta di T Barbara Liskov (1988)

2 Matteo Sacco - Università degli Studi di Brescia2 Asserzioni ed ereditarietà Alle sottoclassi è concesso Aggiungere variabili e/o metodi, rispettando il vincolo semantico: inv sottoclasse → inv classe Ridefinire metodi ereditati, soddisfando i vincoli semantici: post sottoclasse → post classe pre classe → pre sottoclasse

3 Matteo Sacco - Università degli Studi di Brescia3 Il subtyping da Linguaggi di Programmazione (prof. G. Lamperti)

4 Matteo Sacco - Università degli Studi di Brescia4 Caratteristiche della sottoclasse che garantiscono il subtyping Aggiunta di variabili e/o metodi Ridefinizione “compatibile” di metodi ereditati stesso protocollo = numero, ordine e tipo dei parametri formali + tipo del valore di ritorno Controvarianza dei parametri di input Covarianza del parametro di output Assieme al nome del metodo costituisce la signature da Linguaggi di Programmazione (prof. G. Lamperti)

5 Matteo Sacco - Università degli Studi di Brescia5 Controvarianza dei parametri di input I parametri di input del metodo ridefinito nella sottoclasse sono supertipi dei rispettivi parametri del metodo della superclasse Si allarga il tipo

6 Matteo Sacco - Università degli Studi di Brescia6 Covarianza del parametro di output Il parametro di output del metodo ridefinito nella sottoclasse è sottotipo del parametro di uscita del metodo della superclasse Si restringe il tipo

7 Matteo Sacco - Università degli Studi di Brescia7 LP e Ing. del Software B I parametri di input del metodo ridefinito nella sottoclasse sono supertipi dei rispettivi parametri del metodo della superclasse pre classe → pre sottoclasse Il parametro di output del metodo ridefinito nella sottoclasse è sottotipo del parametro di uscita del metodo della superclasse post sottoclasse → post classe

8 Matteo Sacco - Università degli Studi di Brescia8 Esempio da Linguaggi di Programmazione (prof. G. Lamperti) covarianza del parametro di output stesso verso rispetto al subclassing controvarianza del parametro di input: va controcorrente rispetto al subclassing Funziona sia che p referenzi C1 che C2: vale il principio di sostituibilità

9 Matteo Sacco - Università degli Studi di Brescia9 Esempio (2) Caso canonico: p referenzia oggetto di C1 y = p -> m(x) Caso critico: p referenzia oggetto di C2 y = p -> m(x) CC’C si assegna uno studente (val ritornato) ad una persona: ok si ha uno studente come parametro… è prevista una persona: ok (ne è sottotipo) tipi definiti nel metodo m da Linguaggi di Programmazione (prof. G. Lamperti)


Scaricare ppt "1 Principio di sostituzione Se un oggetto di tipo S può essere sostituito ovunque ci si aspetti un oggetto di tipo T, allora S è una sottoclasse corretta."

Presentazioni simili


Annunci Google