Junior
V čem spočívá rozdíl mezi abstraktními třídami a rozhraními?
sobes.tech AI
Odpověď od AI
Abstraktní třída:
- Může obsahovat abstraktní (bez implementace) a konkrétní (s implementací) metody.
- Může obsahovat pole (proměnné instance).
- Může mít konstruktory.
- Umožňuje jednoduché dědičnosti (jedna třída může dědit od abstraktní třídy).
- Používá se k definování základní struktury a obecného chování souvisejících tříd.
Rozhraní:
- Může obsahovat pouze abstraktní metody (některé jazyky, například Java od verze 8, umožňují výchozí a statické metody s implementací).
- Nemůže obsahovat pole instance (pouze konstanty).
- Nemůže mít konstruktory.
- Umožňuje vícenásobnou implementaci (jedna třída může implementovat více rozhraní).
- Používá se k definování smlouvy, kterou musí třídy dodržovat.