- komunikace mezi objekty pomocí rozhraní (message passing)
- dědění z více směrů = dopadá špatně
- Objekt typu
T může být, bez negativních důsledků, kdekoliv nahrazen objektem typu S, kde S je podtřítou T
- konstruktory se volají v pořadí od rodičů k dětem
- Destruktor jako poslední operaci volá destruktor svého rodiče
- v C# se volá funkce typu (1. varianta)
- Použije se deklarovaný typ proměnné.
- děje se za překladu
- Použije se skutečný typ objektu.
- děje se za běhu
- překrývání metod (method overriding)
- objekty stejné třídy odkazují na stejné vtable
- Třída, ze které dědí všechny třídy = je v kořeni celé hierarchie
GetHashCode() = když nevíme jak, tak ^ (xor) všech položek
- Proces konverze nějakého hodnotového typu na object.
- Při odpojení prvek se osamostatní sám na haldu. (není svázaný na původní hodnotu)
ArrayList (lze představit jako List<object>), Stack - může vkládat pouze objekty, abych mohli použít int, musíme použít boxing
- využití pro velké programy
- přimixuje si k věcem děděné z rodiče implementace z jiné třídy