Liskovin substituutio-periaate (LSP) määrää, että alatyyppin objektit on voitava korvata niiden perustyypillä ilman ohjelman oikeellisuuden rikkoontumista. Jos koodi toimii Base-tyypin kanssa, sen on toimittava minkä tahansa Subclass-tyypin kanssa — samat käyttäytymisen odotukset, ei yllätyksiä.
