Sobes.tech
Junior — Middle

Можете ли објаснити шта значи појам апстрактне класе у објектно оријентисаном програмирању?

sobes.tech АИ

Одговор од АИ

Apstraktna klasa u objektno-orijentisanom programiranju je klasa koja nije namenjena za direktno kreiranje instanci. Ona služi kao šablon za druge klase i može sadržavati kako implementirane metode, tako i apstraktne (bez implementacije), koje moraju biti implementirane u podklasama.

Na primer, u Dart (jezik Flutter), apstraktna klasa se deklarise pomoću ključne reči abstract:

abstract class Animal {
  void makeSound(); // apstraktna metoda

  void breathe() {
    print('Diše'); // implementirana metoda
  }
}

class Dog extends Animal {
  @override
  void makeSound() {
    print('Hau');
  }
}

void main() {
  // Animal animal = Animal(); // Greška: ne može se kreirati instanca apstraktne klase
  Dog dog = Dog();
  dog.makeSound(); // Hau
  dog.breathe();   // Diše
}

Na ovaj način, apstraktna klasa definiše opšti interfejs i osnovnu funkcionalnost, dok konkretne klase implementiraju detalje.