Ereditarietà (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Pil56-bot (discussione | contributi)
m smistamento lavoro sporco e fix vari
LauBot (discussione | contributi)
m Bot: passaggio degli url da HTTP a HTTPS
Riga 16:
 
; Violazione del principio di sostituibilità
Nonostante tutto, in genere è tecnicamente possibile estendere una classe violando il principio di sostituibilità, in quanto le regole imposte dal linguaggio di programmazione in uso non possono andare oltre la correttezza ''formale'' del codice scritto ed eventualmente la sua aderenza a determinate precondizioni o postcondizioni. In certi casi, il principio viene violato intenzionalmente<ref name="java.util.IdentityHashMap">Esempio in Java: la classe <code>[httphttps://download.oracle.com/javase/6/docs/api/java/util/IdentityHashMap.html java.util.IdentityHashMap]</code>, appartenente alle librerie standard del linguaggio, viola intenzionalmente il contratto generale stabilito dal tipo <code>java.util.Map</code>, ma, come si vede dalla documentazione della stessa, il fatto che il contratto generale dell'interfaccia <code>Map</code> sia violato è ben documentato.</ref>; tuttavia, quando succede, è opportuno che si documenti la cosa in modo appropriato, onde evitare che le istanze della classe siano usate dove si assume valido il citato principio di sostituibilità<ref name="java.util.IdentityHashMap"/>.
 
; Polimorfismo