Sobes.tech
Junior — Middle

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

sobes.tech АИ

Одговор од АИ

Da, nasleđivanje je jedan od ključnih mehanizama koji doprinosi implementaciji polimorfizma u objektno-orijentisanom programiranju. Polimorfizam omogućava da objekti različitih klasa budu obrađeni putem zajedničkog interfejsa, a nasleđivanje omogućava kreiranje hijerarhija klasa, gde podklase mogu prepisivati metode osnovne klase.

Na primer, ako postoji osnovna klasa Životinja sa metodom izdatiZvuk(), a podklase Pas i Mačka prepisuju tu metodu, onda se sa objektima tih klasa može raditi putem reference na osnovnu klasu i pozivati metod izdatiZvuk(), dobijajući različito ponašanje:

class Životinja {
    void izdatiZvuk() {
        System.out.println("Neki zvuk");
    }
}

class Pas extends Životinja {
    @Override
    void izdatiZvuk() {
        System.out.println("Lajanje");
    }
}

class Mačka extends Životinja {
    @Override
    void izdatiZvuk() {
        System.out.println("Mijau");
    }
}

// Upotreba
Životinja z = new Pas();
z.izdatiZvuk(); // Štampa "Lajanje"