Junior
Kad notiek metodes (overriding) pārrakstīšana programmēšanā?
sobes.tech AI
Atbilde no AI
Metodes pārrakstīšana notiek mantošanas laikā, kad atvasinātā klase nodrošina savu versiju metodes, kas jau ir definēta vecāku klasē. Metodes paraksts (nosaukums, atgriešanas tips un argumentu skaits/tipi) ir jāatbilst vecāku klases metodei. Tas ļauj darboties polimorfismam: atvasinātās klases objekts, izmantojot kā vecāku klases objektu, izsauc savu specifisko metodes versiju.
Piemēri:
- Pārrakstīt mantojamās uzvedības loģiku.
- Nodrošināt specifisku apakšklases realizāciju kopējā interfeisā.
Galvenie punkti:
- Ir nepieciešama is-a attiecība (mantošana).
- Metodes paraksts ir jāatbilst.
- Piekļuves modifikators var būt tāds pats vai mazāk stingrs nekā vecāku metodes.
- Nav atļauts pārrakstīt
finalvaistaticmetodes (lielākajā daļā valodu).
// Piemērs Java
class Animal {
public void makeSound() {
System.out.println("Vispārīgs dzīvnieka skaņa");
}
}
class Dog extends Animal {
@Override // Anotācija norāda uz pārrakstīšanu
public void makeSound() {
System.out.println("Vau!");
}
}
// Lietošana
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Izvade: Vispārīgs dzīvnieka skaņa
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Izvade: Vau! (izsauc pārrakstīto metodi)
# Piemērs Python
class Animal:
def make_sound(self):
print("Vispārīgs dzīvnieka skaņa")
class Dog(Animal):
def make_sound(self): # Pārrakstīšana
print("Vau!")
# Lietošana
# animal = Animal()
# animal.make_sound() # Izvade: Vispārīgs dzīvnieka skaņa
#
# dog = Dog()
# dog.make_sound() # Izvade: Vau!