Projektując system tworzymy abstrakcje. Często mamy wybór: klasa abstrakcyjną czy interfejs? Obie konstrukcje są obietnicą, kontraktem, który później musi zrealizować obiekt. Zatem kiedy lepiej użyć której? Dziś zajmiemy się rozróżnieniem między nimi.