Sąsaja deklaruoja kontraktą — metodų rinkinį, kurį turi pateikti tipas — be (arba minimalios) implementacijos. Abstrakti klasė yra iš dalies įgyvendinta klasė, kuri gali turėti bendrą būseną ir konkrečius metodus, tačiau negali būti instancijuota. Pagrindinė pagrindinė perskyra: klasė gali įgyvendinti daug sąsajų, bet paveldėti tik iš vienos klasės.
