Назад к вопросам
Junior
107
questionbank

Что такое абстрактный класс?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech 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;
  }
}