Sobes.tech
Junior

Co je to abstraktní třída?

sobes.tech AI

Odpověď od AI

Abstraktní třída je třída, kterou nelze přímo vytvořit pomocí operátoru new. Slouží jako základ pro jiné třídy a může obsahovat abstraktní metody (bez implementace) a běžné metody (s implementací). Abstraktní třídy jsou definovány klíčovým slovem abstract.

Hlavní vlastnosti:

  • Nelze instancovat: Není možné vytvořit objekt samotné abstraktní třídy.
  • Může obsahovat abstraktní metody: Metody bez těla, které musí být přepsány v odvozených třídách.
  • Může obsahovat běžné metody: Metody s implementací, které mohou být děděny nebo přepsány.
  • Dědičnost: Odvozené třídy dědí od abstraktní třídy a musí implementovat všechny její abstraktní metody.

Příklad:

abstract class Shape {
  // Abstraktní metoda bez implementace
  double getArea();

  // Běžná metoda s implementací
  void describe() {
    print('Jedná se o tvar.');
  }
}

class Circle extends Shape {
  double radius;

  Circle(this.radius);

  // Implementace abstraktní metody
  @override
  double getArea() {
    return 3.14 * radius * radius;
  }
}

class Square extends Shape {
  double side;

  Square(this.side);

  // Implementace abstraktní metody
  @override
  double getArea() {
    return side * side;
  }
}