Junior
Kada įvyksta metodo (overriding) perrašymas programavime?
sobes.tech AI
Atsakymas iš AI
Perrašymas metodo įvyksta paveldėjimo metu, kai vaiko klasė pateikia savo pačios įgyvendinimą metodo, kuris jau yra apibrėžtas tėvų klasėje. Metodo parašas (pavadinimas, grąžinamoji reikšmė ir argumentų skaičius/tipai) turi sutapti su tėvų klasės metodu. Tai leidžia veikti polimorfizmui: vaiko klasės objektas, naudojamas kaip tėvų klasės objektas, iškviečia savo specifinę metodo įgyvendinimą.
Naudojimo pavyzdžiai:
- Paveldėto elgesio logikos keitimas.
- Teikti specifinį subklasės įgyvendinimą bendram sąsajai.
Svarbūs punktai:
- Reikalingas is-a santykis (paveldėjimas).
- Metodo parašas turi sutapti.
- Prieigos modifikatorius gali būti toks pats arba mažiau griežtas nei tėvų metodo.
- Negalima perrašyti
finalarbastaticmetodų (daugelyje kalbų).
// Pavyzdys Java kalba
class Animal {
public void makeSound() {
System.out.println("Bendras gyvūno garsas");
}
}
class Dog extends Animal {
@Override // Anotacija nurodo perrašymą
public void makeSound() {
System.out.println("Au!");
}
}
// Naudojimas
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Išvestis: Bendras gyvūno garsas
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Išvestis: Au! (kviečiamas perrašytas metodas)
# Pavyzdys Python kalba
class Animal:
def make_sound(self):
print("Bendras gyvūno garsas")
class Dog(Animal):
def make_sound(self): # Perrašymas
print("Au!")
# Naudojimas
# animal = Animal()
# animal.make_sound() # Išvestis: Bendras gyvūno garsas
#
# dog = Dog()
# dog.make_sound() # Išvestis: Au!