Rajapinta julistaa sopimuksen — joukon metodeja, jotka tyypin on tarjottava — ilman (tai vähäisellä) toteutuksella. Abstrakti luokka on osittain toteutettu luokka, joka voi sisältää jaettua tilaa ja konkreettisia metodeja, mutta sitä ei voi instantioida. Keskeinen ero: luokka voi toteuttaa useita rajapintoja mutta periä vain yhdestä luokasta.
