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;
}
}