Junior
Kada dolazi do prepisivanja metode (overriding)?
sobes.tech АИ
Одговор од АИ
Prepisivanje metode (overriding) događa se u hijerarhiji nasleđivanja kada podklasa pruža svoju implementaciju metode koja je već definisana u roditeljskoj klasi sa istim imenom, potpisom (poklapanje tipa i broja parametara) i tipom povratne vrednosti (ili kovarijantnim u slučaju tipa objekta povratne vrednosti).
Ključne karakteristike:
- Nasleđivanje: Prepisivanje je moguće samo u kontekstu nasleđivanja (roditeljske i podklase).
- Potpis: Metod u podklasi mora imati isti potpis (ime, broj i tipove parametara) i isti tip povratne vrednosti (ili njegov kovarijantni podtip) kao metod u roditeljskoj klasi.
- Pristupačnost: Metod koji se prepisuje mora biti dostupan za podklasu (obično
public,protected). - Polimorfizam: Prepisivanje je osnova polimorfizma u vremenu izvršenja (runtime polymorphism), omogućavajući objektima podklase da reaguju na poziv metode na svoj način, čak i kada im se pristupa putem reference na roditeljsku klasu.
Primer (Java):
// Roditeljska klasa
class Animal {
// Metod koji će biti prepisan
public void makeSound() {
System.out.println("Životinja pravi zvuk");
}
}
// Podklasa
class Dog extends Animal {
// Prepisivanje metode makeSound()
@Override // Anotacija @Override je opcionalna, ali preporučena
public void makeSound() {
System.out.println("Pas laje");
}
}
Primer upotrebe:
// Kreiramo objekat Dog
Animal myDog = new Dog();
// Pozivamo metodu. Biće pozvana prepisana verzija iz Dog
myDog.makeSound(); // Izlaz: Pas laje
// Kreiramo objekat Animal
Animal someAnimal = new Animal();
// Pozivamo metodu. Biće pozvana verzija iz Animal
someAnimal.makeSound(); // Izlaz: Životinja pravi zvuk