Sobes.tech
Junior — Middle

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

sobes.tech AI

Odpowiedź od AI

Abstrakcja w programowaniu obiektowym to zasada, która pozwala ukryć złożone szczegóły implementacji i pokazać użytkownikowi tylko niezbędny interfejs do interakcji z obiektem. W PHP często realizuje się to za pomocą klas abstrakcyjnych i interfejsów, które definiują zestaw metod bez ich konkretnej implementacji.

Na przykład, abstrakcyjna klasa Animal może deklarować metodę makeSound(), ale jej nie implementować. Konkretne klasy, takie jak Dog czy Cat, będą dziedziczyć po Animal i implementować tę metodę na swój sposób. To umożliwia pracę z obiektami przez wspólny interfejs, nie martwiąc się o szczegóły implementacji każdego z nich.

abstract class Animal {
    abstract public function makeSound();
}

class Dog extends Animal {
    public function makeSound() {
        echo "Hau-hau";
    }
}

class Cat extends Animal {
    public function makeSound() {
        echo "Miau";
    }
}

function playSound(Animal $animal) {
    $animal->makeSound();
}

playSound(new Dog()); // Wyświetli: Hau-hau
playSound(new Cat()); // Wyświetli: Miau

W ten sposób abstrakcja pomaga tworzyć elastyczne i rozszerzalne systemy, oddzielając interfejs od implementacji.