Sobes.tech
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();   // Диша
}

По този начин, абстрактният клас задава общ интерфейс и базова функционалност, а конкретните класове реализират детайлите.