Sobes.tech
Junior — Middle

Môžete vysvetliť, čo sa rozumie pod pojmom abstrakcia v objektovo orientovanom programovaní?

sobes.tech AI

Odpoveď od AI

Abstrakcia v objektovo orientovanom programovaní je princíp, ktorý umožňuje skryť zložité detaily implementácie a používateľovi ukázať iba potrebné rozhranie na interakciu s objektom. V PHP sa to často realizuje pomocou abstraktných tried a rozhraní, ktoré definujú súbor metód bez ich konkrétnej implementácie.

Napríklad, abstraktná trieda Animal môže deklarovať metódu makeSound(), ale ju neimplementovať. Konkrétne triedy, ako Dog alebo Cat, budú dediť od Animal a implementovať túto metódu svojím spôsobom. To umožňuje pracovať s objektmi cez spoločné rozhranie, bez starostí o detaily ich implementácie.

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

class Dog extends Animal {
    public function makeSound() {
        echo "Haf-haf";
    }
}

class Cat extends Animal {
    public function makeSound() {
        echo "Mňau";
    }
}

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

playSound(new Dog()); // Vytlačí: Haf-haf
playSound(new Cat()); // Vytlačí: Mňau

Týmto spôsobom pomáha abstrakcia vytvárať flexibilné a rozšíriteľné systémy, oddelením rozhrania od implementácie.