Sobes.tech
Junior — Middle

Czy może Pan/Pani wyjaśnić, co oznacza pojęcie klasy abstrakcyjnej w programowaniu obiektowym?

sobes.tech AI

Odpowiedź od AI

Klasa abstrakcyjna w programowaniu obiektowym to klasa, która nie jest przeznaczona do bezpośredniego tworzenia instancji. Służy jako szablon dla innych klas i może zawierać zarówno metody zaimplementowane, jak i metody abstrakcyjne (bez implementacji), które muszą być zaimplementowane w podklasach.

Na przykład w Dart (język Flutter) klasa abstrakcyjna jest deklarowana za pomocą słowa kluczowego abstract:

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

  void breathe() {
    print('Oddycha'); // metoda zaimplementowana
  }
}

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

void main() {
  // Animal animal = Animal(); // Błąd: nie można utworzyć instancji klasy abstrakcyjnej
  Dog dog = Dog();
  dog.makeSound(); // Hau
  dog.breathe();   // Oddycha
}

W ten sposób klasa abstrakcyjna definiuje ogólny interfejs i podstawową funkcjonalność, a konkretne klasy implementują szczegóły.