Et interface deklarerer en kontrakt — et sæt af metoder, som en type skal tilbyde — med ingen (eller minimal) implementering. En abstrakt klasse er en delvist implementeret klasse, der kan indeholde delt state og konkrete metoder, men som ikke kan instantieres. Den vigtigste forskel: en klasse kan implementere mange interfaces, men kan kun nedarve fra en klasse.
