Az interfész egy szerződést deklarál — olyan metódusok készletét, amelyeket egy típusnak meg kell adnia — minimális vagy semmilyen megvalósítás nélkül. Az absztrakt osztály egy részben megvalósított osztály, amely megtarthat megosztott állapotot és konkrét metódusokat, de nem lehet példányosítani. A lényeges különbség: egy osztály számos interfészt valósíthat meg, de csak egy osztályból örökölhet.
