Sučelje deklarira ugovor — skup metoda koje tip mora pružiti — s malo ili bez implementacije. Apstraktna klasa je djelomično implementirana klasa koja može sadržavati zajedničko stanje i konkretne metode, ali se ne može instancirati. Ključna razlika: klasa može implementirati mnoga sučelja, ali može nasljeđivati samo jednu klasu.
