Назад к вопросам
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;
}
}