Sobes.tech
Junior

Какво е абстрактен клас?

sobes.tech AI

Отговор от AI

Абстрактният клас е клас, който не може да бъде създаден директно с помощта на оператора new. Той служи като основа за други класове и може да съдържа абстрактни методи (без реализация) и обикновени методи (с реализация). Абстрактните класове се дефинират с ключовата дума abstract.

Основни характеристики:

  • Не може да бъде инстанциран: Не е възможно да се създаде обект на самия абстрактен клас.
  • Може да съдържа абстрактни методи: Методи без тяло, които трябва да бъдат презаписани в наследяващите класове.
  • Може да съдържа обикновени методи: Методи с реализация, които могат да бъдат наследени или презаписани.
  • Наследяване: Наследяващите класове наследяват от абстрактния клас и трябва да реализират всички негови абстрактни методи.

Пример:

abstract class Shape {
  // Абстрактен метод без реализация
  double getArea();

  // Обикновен метод с реализация
  void describe() {
    print('Това е фигура.');
  }
}

class Circle extends Shape {
  double radius;

  Circle(this.radius);

  // Реализация на абстрактния метод
  @override
  double getArea() {
    return 3.14 * radius * radius;
  }
}

class Square extends Shape {
  double side;

  Square(this.side);

  // Реализация на абстрактния метод
  @override
  double getArea() {
    return side * side;
  }
}