Az öröklődés arra használható, hogy egy már létező osztályt specializáljunk. Ezeket a specializációkat a superclass (vagy "szülő") alosztályának (vagy "gyerekének") nevezzük.
Az osztályok más osztályok alosztályai lehetnek. A szülő osztályokat az osztálydefiníció fejlécébe kell beírni.
Az alosztály minden rutint és változót örököl a szülőtől. Az egyetlen kivétel a létrehozó rutin.
Egy örökölt interface rutin nem lehet rejtett (azaz nem lehet az interface-ből eltávolítani).
A gyerekben átdefiniálható az örökölt rutin implementációja. Ezt a rutin fejlécébe írt redefined kulcsszóval tehetjük meg. Az átdefiniált függvény paraméterlistája az eredetiével megegyező kell, hogy legyen. A paraméterlista cseréje illegális.
Néha szükséges egy átdefiniált rutin eredetijét meghívni. Ez a super!rutinnév hivatkozással érhető el. (Gyakori használata a szülő létrehozó rutinjának meghívása).
A rutin implementációját nem szükséges mindig a definiáláskor megadni. Ha a deferred kulcsszót használjuk, akkor ez azt jelenti, hogy a rutin implementációját nem akarjuk megadni (befagyasztott rutin). Azokat az osztályokat, melyeknek legalább egy rutinja befagyasztott, absztrakt osztályoknak nevezzük. Absztrakt osztálynak nem lehet létrehozni példányát. Az absztrakt osztályok gyerekeinek kell tartalmaznia a befagyasztott rutin implementációját. Ha nem tartalmazzák az implementációt, maguk is absztrakt osztályok lesznek.