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() # Արտածում՝ Հաու!