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.