LSP afferma che le classi dovrebbero essere sostituibili per le loro classi di base, il che significa che le classi derivate e di base dovrebbero essere equivalenti semanticamente.
Ma LSP si applica anche alle classi che implementano un'interfaccia? In altre parole, se un metodo di interfaccia implementato da una classe è semanticamente diverso da quello che l'utente si aspetta che sia, sarebbe considerato una violazione di LSP?