Junior
Koja je razlika između nasleđivanja i polimorfizma?
sobes.tech АИ
Одговор од АИ
Nasleđivanje je mehanizam koji omogućava klasi (potklasa, izvedena klasa) da nasledi polja i metode druge klase (roditeljska, superklasa). To podstiče ponovnu upotrebu koda.
Polimorfizam je mogućnost korišćenja istog interfejsa za predstavljanje različitih osnovnih oblika. U kontekstu Jave, to znači da referentna promenljiva može ukazivati na objekat svog sopstvenog tipa ili na objekat bilo kog od njegovih podtipova. Razlikuju se polimorfizam u vreme kompajliranja (preopterećenje metoda) i u vreme izvršavanja (prepisivanje metoda).
Glavna razlika:
- Nasleđivanje definiše odnose između klasa (roditelj-ćerka) i omogućava ponovnu upotrebu koda.
- Polimorfizam omogućava pristup različitim objektima putem zajedničkog interfejsa, izvršavajući odgovarajuću metodu u zavisnosti od stvarnog tipa objekta tokom izvršavanja.
Primer polimorfizma u vreme izvršavanja:
class Animal {
public void sound() {
System.out.println("Životinja pravi zvuk");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Gau-gau");
}
}
class Cat extends Animal {
@Override
public void sound() {
System.out.println("Mijau-mijau");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Polimorfizam: promenljiva tipa Animal koja referencira objekat Dog
Animal myCat = new Cat(); // Polimorfizam: promenljiva tipa Animal koja referencira objekat Cat
myDog.sound(); // Poziva metodu sound() iz klase Dog
myCat.sound(); // Poziva metodu sound() iz klase Cat
}
}