Junior — Middle
Можете ли да обясните какво означава понятието абстрактен клас в обектно-ориентираното програмиране?
sobes.tech AI
Отговор от AI
Абстрактният клас в обектно-ориентираното програмиране е клас, който не е предназначен за създаване на екземпляри директно. Той служи като шаблон за други класове и може да съдържа както реализирани методи, така и абстрактни (без реализация), които трябва да бъдат реализирани в подкласовете.
Например, в Dart (езикът Flutter), абстрактният клас се обявява с ключовата дума abstract:
abstract class Animal {
void makeSound(); // абстрактен метод
void breathe() {
print('Диша'); // реализиран метод
}
}
class Dog extends Animal {
@override
void makeSound() {
print('Гав');
}
}
void main() {
// Animal animal = Animal(); // Грешка: не може да се създаде екземпляр на абстрактен клас
Dog dog = Dog();
dog.makeSound(); // Гав
dog.breathe(); // Диша
}
По този начин, абстрактният клас задава общ интерфейс и базова функционалност, а конкретните класове реализират детайлите.