Sobes.tech
Junior

Kas ir abstrakta klase?

sobes.tech AI

Atbilde no AI

Abstrakta klase ir klase, kuru nevar veidot tieši ar new operatora palīdzību. Tā kalpo kā pamats citām klasēm un var saturēt abstraktus (bez realizācijas) un parastus (ar realizāciju) metodes. Abstraktas klases tiek definētas ar atslēgvārdu abstract.

Galvenās īpašības:

  • Nav iespējams izveidot instanci: Nav iespējams izveidot objekta no pašas abstraktās klases.
  • Var saturēt abstraktus metodes: Metodes bez ķermeņa, kuras ir jā pārdefinē apakšklasēs.
  • Var saturēt parastas metodes: Metodes ar realizāciju, kuras var manto vai pārdefinēt.
  • Mantošana: Apakšklases manto no abstraktās klases un ir jārealizē visas tās abstraktās metodes.

Piemērs:

abstract class Shape {
  // Abstrakta metode bez realizācijas
  double getArea();

  // Parasta metode ar realizāciju
  void describe() {
    print('Šī ir figūra.');
  }
}

class Circle extends Shape {
  double radius;

  Circle(this.radius);

  // Abstraktās metodes realizācija
  @override
  double getArea() {
    return 3.14 * radius * radius;
  }
}

class Square extends Shape {
  double side;

  Square(this.side);

  // Abstraktās metodes realizācija
  @override
  double getArea() {
    return side * side;
  }
}