Newest Viewed Downloaded

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 TBarbara Liskov (1988)

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)

Asserzioni ed ereditarietà

Alle sottoclassi è concesso Aggiungere variabili e/o metodi, rispettando il vincolo semantico: invsottoclasse → invclasse Ridefinire metodi ereditati, soddisfando i vincoli semantici: postsottoclasse → postclasse preclasse → presottoclasse

Il subtyping

da Linguaggi di Programmazione (prof. G. Lamperti)

Caratteristiche della sottoclasse che garantiscono il subtyping

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) Aggiunta di variabili e/o metodi Ridefinizione “compatibile” di metodi ereditati

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

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

LP e Ing. del Software B

I parametri di input del metodo ridefinito nella sottoclasse sono supertipi dei rispettivi parametri del metodo della superclasse preclasse → presottoclasse Il parametro di output del metodo ridefinito nella sottoclasse è sottotipo del parametro di uscita del metodo della superclasse postsottoclasse → postclasse

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à

Esempio (2)

Caso canonico: p referenzia oggetto di C1 y = p -> m(x) Caso critico: p referenzia oggetto di C2 y = p -> m(x) C C’ C 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)

Showing 1 - 9 of 9 items Details

Name: 
Subtyping
Author: 
N/A
Company: 
N/A
Description: 
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 TBarbara Liskov (1988)
Tags: 
metodo | parametro | parametri | tipo | sottoclasse | input | output | superclasse
Created: 
2/3/2006 1:56:11 PM
Slides: 
9
Views: 
6
Downloads: 
0
Rating: 
0


> Comment



Share this presentation
|

Comments

Share this presentation:

|
Sitemap