In generale un sottotipo può indebolire le precondizioni e rafforzare le postcondizioni(LPP).
Per avere compatibilità tra specifiche del super-tipo e del sottotipo devono essere soddisfatte le regole:
Regola PRE (della precondizione):
pre(super) ==> pre(sottoclasse)
Regola POST (della postcondizione):
pre(super) && post(sottoclasse) ==> post(super)
Purchè il Principio di Sostituzione sia soddisfatto, oltre alle regole dei metodi devono valere:
- Non devono essere lanciate nuove eccezioni nel sottotipo, a meno che esse non siano sottoclassi delle eccezioni della superclasse
- L'invariante di rappresentazione del supertipo deve essere preservata nel sottotipo
- Le precondizioni non possono essere rafforzate in un sottotipo
- Le postcondizioni non possono essere indebolite in un sottotipo