Sobes.tech
Junior

Kas yra abstrakti klasė?

sobes.tech AI

Atsakymas iš AI

Abstrakti klasė yra klasė, kurios tiesiogiai sukurti neįmanoma naudojant new operatorių. Ji tarnauja kaip pagrindas kitoms klasėms ir gali turėti abstrakčių (be realizacijos) ir įprastų (su realizacija) metodų. Abstrakčios klasės apibrėžiamos raktažodžiu abstract.

Pagrindinės savybės:

  • Negalima kurti instancijos: Negalima sukurti objekto iš paties abstraktaus klasės.
  • Gali turėti abstrakčius metodus: Metodai be kūno, kurie turi būti perrašyti paveldinčiose klasėse.
  • Gali turėti įprastus metodus: Metodai su realizacija, kurie gali būti paveldėti arba perrašyti.
  • Paveldėjimas: Paveldinčios klasės paveldi iš abstrakčiosios klasės ir turi įgyvendinti visas jos abstrakčias metodus.

Pavyzdys:

abstract class Shape {
  // Abstraktus metodas be realizacijos
  double getArea();

  // Įprastas metodas su realizacija
  void describe() {
    print('Tai yra figūra.');
  }
}

class Circle extends Shape {
  double radius;

  Circle(this.radius);

  // Abstraktaus metodo įgyvendinimas
  @override
  double getArea() {
    return 3.14 * radius * radius;
  }
}

class Square extends Shape {
  double side;

  Square(this.side);

  // Abstraktaus metodo įgyvendinimas
  @override
  double getArea() {
    return side * side;
  }
}