Sobes.tech
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 final vai static metodes (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!