Viditelnost tříd a metod
Překrytí metod
- Potřebuje-li potomek používat jiný kód zděděné metody, pak ho může překrýt svým kódem (ale signaturu metody musí dodržet).
- Signatura metody zahrnuje jméno, typy předávaných parametrů, typ návratové hodnoty.

Přetěžování metod (projev polymorfismu)
- umožňují některé objektově orientované jazyky
- jde o možnost definovat více metod sloužících ke stejnému účelu se shodným názvem, které se liší pouze počtem a typem parametrů (tzv. signaturou metody)
- např. známá funkce random v PSC náhodně generuje reálné číslo z intervalu <0,1), naproti tomu random (N) generuje celé číslo z intervalu <0, N), tedy z intervalu <0, N-1>
• podle způsobu jejich volání překladač sám "rozpozná", která z variant přetížené metody se má právě zavolat
Abstraktní metoda
- metoda, jejíž implementace v předkovi úplně chybí (všichni potomci překrývají metodu po svém, nemá cenu metodu v předkovi implementovat)
- metody označené jako abstraktní nemohou definovat implementaci (kód), pouze definují název a případné argumenty (parametry). Zde např. metoda spočítejObsah (), nebo nakresli () nebo DělatZvuky ()
- v případě, že abstraktní metodu v předkovi nepřekryjeme, bude i potomek abstraktní, nebo spíše může dojít k ohlášení chyby (obecně dceřiná třída abstraktní třídy musí mít všechny metody s implementací, tj. konkrétní)


Kočka by měla zamňoukat, takže, zde je žádoucí, aby metoda DělatZvuky ve třídě Kočka metodu předka, tedy Savce a případě, že vytvoříme třídu typu Kočka tak nám metoda bude „mňoukat“, zatímco když se budeme pokoušet vytvořit savce, programovací jazyk zareaguje, že nelze vytvořit abstraktní třídu, Savec je abstrakce. Stejně tak bychom mohli od Savce odvodit Psa, ale pokud nedefinujeme metodu DělatZvuky, bude Pes rovněž abstraktní.
Abstraktní třída
- třída s alespoň jednou abstraktní metodou (zde třída Tvar)
- abstraktní třídy nemohou vytvářet instance
- ??? atributy abstraktní třídy nesmí mít definovanou hodnotu ???
- mohou být ale děděny a jejich potomci (po implementaci potřebných metod!) instance vytvářet mohou
- pokud narazíme na instanci abstraktní třídy, může jít jen o instanci POTOMKA, který se za instanci abstraktní třídy vydává (to potomci mohou)
Modifikátory přístupu
- Vlastnost nebo metoda určená pomocí public je přístupná všem uživatelům třídy.
- Klíčové slovo protected (z anglického "chráněný") před metodou nebo vlastností třídy znamená, že je vlastnost přístupná uživatelům třídy (rodiče) a podtřídy, která tuto třídu dědí.
- Soukromá metoda nebo vlastnost předznačená klíčovým slovem private je přístupná pouze uvnitř třídy.
Přístupové modifikátory umožňují programátorovi definovat bezpečnostní pravidla pro přístup k členům třídy. Například je vhodné datové složky třídy definovat s modifikátorem private, a tím znemožnit jejich přímou modifikaci. Ta se potom provádí nepřímo pomocí veřejných (public) metod dané třídy.
Ve většině OOP jazyků jsou definovány tyto přístupové modifikátory:
- public – neomezený přístup
- protected – přístup je omezen na danou třídu a třídy odvozené
- private – přístup je omezen pouze na danou třídu
Přístupové modifikátory nelze kombinovat. Ne vždy je možné použít libovolný modifikátor v závislosti na kontextu.