A Class egy specifikáció arra, hogyan lehet objektumokat építeni ugyanabból az osztályból . Ez egyfajta tervrajz vagy prototípus, amelyből egyedi objektumok jönnek létre. Azt mondhatjuk, hogy az osztály egy sablon, amely leírja, hogy a típusához tartozó objektumok milyen állapotot és viselkedést támogatnak.
Az objektumorientált programozás (OOP) szempontjából azt mondhatjuk, hogy a Toyota autó a Car nevű objektumosztály egy példánya. Az osztály olyan, mint az autó tervrajza. Ezt a tervrajzot felhasználva annyi Autót építhetünk, amennyit csak akarunk. Minden egyes megépített autó az Autó osztály egy Objektuma. Természetesen minden Autónak van egy száma is. Ha meg akarod mondani valakinek, hogy melyik a te autód, akkor megadod neki a számot az azonosításához. Ezt a számot hívják Objektum hivatkozásnak .
Egy interfész egy szerződést ad meg, amely meghatározza, hogyan hozzon létre egy Objektumot, anélkül, hogy törődne a dolgok végrehajtásának sajátosságaival. Az interfész egy referenciatípus, és csak absztrakt tagokat tartalmaz, mint az események, metódusok, tulajdonságok stb. és nincs implementációja egyik tagjának sem.
Amikor egy osztály implementál egy interfészt, a fordító rákényszeríti, hogy megírja azokat a metódusokat és tulajdonságokat, amelyeket az interfész definiált. Vagyis, ha egy interfészt implementálsz az osztályodban, akkor az interfész összes eseményét, metódusát, tulajdonságát deklarálnod kell az osztályodban. Egy interfésznek csak absztrakt metódusai és konstansai lehetnek, amelyek mindig implicit módon publikusak, statikusak és véglegesek.
Az osztály definícióval és implementációval is rendelkezik, míg az interfész csak definícióval.
Az osztály példányosítható, de az interfész nem példányosítható Egy olyan objektum példányát hozhatja létre, amely implementálja az interfészt.
Az osztály egy teljes testű entitás, amelynek tagjai, metódusai definícióval és implementációval együtt vannak. Egy interfész csak egy definícióhalmaz, amelyet az adott interfészt öröklő osztályodban kell implementálnod.