Sobes.tech
Junior — Middle

Puteți explica ce înseamnă abstracția în programarea orientată pe obiecte?

sobes.tech AI

Răspuns de la AI

Abstracția în programarea orientată pe obiecte este un principiu care permite ascunderea detaliilor complexe de implementare și afișarea utilizatorului doar a interfeței necesare pentru interacțiunea cu obiectul. În PHP, acest lucru se realizează adesea prin clase abstracte și interfețe, care definesc un set de metode fără implementarea lor concretă.

De exemplu, o clasă abstractă Animal poate declara metoda makeSound(), dar nu o implementează. Clasele concrete, precum Dog sau Cat, vor moșteni de la Animal și vor implementa această metodă în mod propriu. Acest lucru permite lucrul cu obiecte printr-o interfață comună, fără a se preocupa de detaliile de implementare ale fiecăruia.

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

class Dog extends Animal {
    public function makeSound() {
        echo "Ham-ham";
    }
}

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

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

playSound(new Dog()); // Va afișa: Ham-ham
playSound(new Cat()); // Va afișa: Miau

Astfel, abstracția ajută la crearea de sisteme flexibile și extensibile, separând interfața de implementare.