Osztály = Az osztályok olyan típusok, amelyek egységbe foglalnak adattagokat, metódusokat, amelyek egymáshoz kötődnek, tartoznak. Egy speciális struktúra. Hasonló, mint a struct. A kettő közötti különbség Boo-ban, hogy a struct minden metódusa,
adattagja publikus (hasonlóan sok más prog. nyelvhez), addig az osztály alapból private elérésű összetevőkből áll. Az osztály leír egy adatszerkezetet, minden egyes példány tartalmazza a metódusokat, amelyekkel változtatni, hozzáférni lehet az adatokhoz. Az osztály meghatározza azokat
a szabályokat, amelyek szerint a belőle példányosított objektum működhet. A struct érték típus, az osztály referencia típus.
Az osztályok segítenek a kód egyszerűsítésében, hogy logikailag összefüggő részekre bonthassuk a kódunkat.
Field: Az osztály egy eleme, amely információt tárol.
Property: Szintaktikai segítség, a getter/setter funkciók helyett.
Objektum: Az osztály egy példánya.
Egy lehetséges megoldása új osztályok létrehozásának. Ha van már egy nagyon hasonló osztályunk, amelyben csak egy két dolgot kell változtatni, akkor nem kell újra megírni őket, hanem származtatni kell belőle, és hozzáadni/elvenni adattagokat, metódusokat, illetve felüldefiniálni esetleg túlterhelni azokat.
Két kulcsszó van ennek a megvalósítására: virtual és override. Virtualként kell egy metódust megírni, ha overrideol-ni(felüldefiniálni) szeretnénk később. Egy példán keresztül elég jól meg lehet érteni, mit jelent ez:
Interface: Az interfész metóduslistát definiál, amit az őt megvalósító osztálynak implementálnia kell. Az interfész nem tartalmazhat kódrészleteket, csak üres metódusdefiníciókat Egy interfész több interfészből is öröklődhet, de osztályból nem.
Az osztályokban definiálunk metódusokat, amelyek lehet publikus, private, és protected elérésűek. Speciális metódusok a konstruktor és a destruktor, ami az osztály betöltődéséért és megsemmisítéséért felelős.