Sobes.tech
Junior — Middle

Можете ли објаснити шта подразумева појам апстракција у објектно-оријентисаном програмирању?

sobes.tech АИ

Одговор од АИ

Apstrakcija u objektno-orijentisanom programiranju je princip koji omogućava skrivanje složenih detalja implementacije i prikazivanje korisniku samo potrebnog interfejsa za interakciju sa objektom. U PHP-u se to često realizuje putem apstraktnih klasa i interfejsa, koji definišu skup metoda bez njihove konkretne implementacije.

Na primer, apstraktna klasa Animal može deklarisati metodu makeSound(), ali je ne implementirati. Konkrete klase, poput Dog ili Cat, će naslediti od Animal i implementirati ovu metodu na svoj način. Ovo omogućava rad sa objektima putem zajedničkog interfejsa, bez brige o detaljima njihove implementacije.

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

class Dog extends Animal {
    public function makeSound() {
        echo "Gau-gau";
    }
}

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

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

playSound(new Dog()); // Ispisaće: Gau-gau
playSound(new Cat()); // Ispisaće: Mijau

Na ovaj način, apstrakcija pomaže u kreiranju fleksibilnih i proširivih sistema, odvajajući interfejs od implementacije.