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"