Sobes.tech
Junior — Middle

Můžete vysvětlit, co znamená pojem abstraktní třída v objektově orientovaném programování?

sobes.tech AI

Odpověď od AI

Abstraktní třída v objektově orientovaném programování je třída, která není určena k přímému vytváření instancí. Slouží jako šablona pro jiné třídy a může obsahovat jak implementované metody, tak abstraktní (bez implementace), které musí být implementovány v podtřídách.

Například v Dart (jazyk Flutter) je abstraktní třída deklarována pomocí klíčového slova abstract:

abstract class Animal {
  void makeSound(); // abstraktní metoda

  void breathe() {
    print('Dýchá'); // implementovaná metoda
  }
}

class Dog extends Animal {
  @override
  void makeSound() {
    print('Haf');
  }
}

void main() {
  // Animal animal = Animal(); // Chyba: nelze vytvořit instanci abstraktní třídy
  Dog dog = Dog();
  dog.makeSound(); // Haf
  dog.breathe();   // Dýchá
}

Tímto způsobem abstraktní třída definuje obecné rozhraní a základní funkčnost, zatímco konkrétní třídy implementují detaily.