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.