Sobes.tech
Junior

Երբ է տեղի ունենում մեթոդի (overriding) վերագրումը ծրագրավորման մեջ?

sobes.tech AI

Պատասխան AI-ից

Մեթոդի վերագրում տեղի է ունենում ** ժառանգության ** ժամանակ, երբ մշակված դասը իր սեփական իրականացմանը ներկայացնում է արդեն սահմանված մայր դասի մեթոդը: Մեթոդի սինտաքսը (անունը, վերադարձի տիպը և արգումենտների քանակը/տիպերը) պետք է համընկնի մայր դասի մեթոդի հետ: Սա թույլ է տալիս աշխատել պոլիմորֆիզմը՝ երբ որդեգրված դասի օբյեկտը, օգտագործվելով որպես մայր դասի օբյեկտ, կանչում է իր հատուկ մեթոդի իրականացումը:

Օգտագործման օրինակներ:

  • ժառանգված վարքագծի տրամաբանության փոփոխություն:
  • ընդհանուր ինտերֆեյսի համար հատուկ իրականացման տրամադրում:

Հիմնական կետեր:

  • պահանջվում է -ի-- հարաբերություն:
  • մեթոդի սինտաքսը պետք է համընկնի:
  • մուտքի մոդիֆիկատորը կարող է լինել նույնը կամ ավելի քիչ խիստ, քան մայր դասի մեթոդը:
  • final կամ static մեթոդները չի կարելի վերագրել (շատ լեզուներում):
// Java-ի օրինակ
class Animal {
    public void makeSound() {
        System.out.println("Ընդհանուր կենդանու ձայն");
    }
}

class Dog extends Animal {
    @Override // Նշում, որ վերագրում է
    public void makeSound() {
        System.out.println("Հաու!");
    }
}

// Օգտագործում
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Արտածում՝ Ընդհանուր կենդանու ձայն
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Արտածում՝ Հաու! (վերագրած մեթոդը կանչվում է)
# Python-ի օրինակ
class Animal:
    def make_sound(self):
        print("Ընդհանուր կենդանու ձայն")

class Dog(Animal):
    def make_sound(self): # Վերագրում
        print("Հաու!")

# Օգտագործում
# animal = Animal()
# animal.make_sound() # Արտածում՝ Ընդհանուր կենդանու ձայն
#
# dog = Dog()
# dog.make_sound() # Արտածում՝ Հաու!