Doplnění poznámek z přednášky 02.

This commit is contained in:
Vojtěch Pour 2023-02-21 15:37:06 +01:00
parent b3c11f3eff
commit 5fa3e8b25c

View file

@ -38,4 +38,31 @@
- referenci na potomka je možné kdykoli přetypovat na referenci na předka
- přetypovává se **reference**, nikoli instance samotná
- obráceně ne (runtime error) => předek nemusí implementovat vše co potomek
- každou referenci je možné přetypovat na referenci na ```Object```
- každou referenci je možné přetypovat na referenci na ```Object```
## Polymorfismus
- instanci potomka lze použít všude kde se očekává předek
- parametr metody
- pole předků
- ...
# Rekurzivní programy
- programy, které volají sami sebe
- rekurze, musí někdy skončit!
## Přímá rekurze
- metoda volá přímo sebe sama
- je vidět na první pohled
## Nepřímá rekurze
- ```a``` volá ```b```, ```b``` volá ```a```
## Problémy rekurze
- problémy s hloubkou zásobníku
- spíše programátorská chyba => přetečení zásobníku
- pro mnoho praktických problémů je rekurze dostatečná
- Java umožňuje nastavit velikost zásobníku
- často lze zapsat do nerekurzní formy
- nerekurzivní => často rychlejší
- zrychlení se projeví, pokud je samotný vykonávaný kód triviální
- někdy je přepsání poměrně složité