Sobes.tech
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.