Sobes.tech
Junior

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

sobes.tech AI

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

Մեթոդի վերագրում (overriding) տեղի է ունենում ժառանգության հիերարխիայում, երբ ժառանգորդ դասը տրամադրում է իր սեփական իրականացմանը արդեն սահմանված մեթոդի, որը նույն անունով, նույն սիգնատուրայով (տիպի և պարամետրերի քանակի համապատասխանությամբ) և նույն վերադարձվող տիպով (կամ kovariant-ով վերադարձվող օբյեկտի տիպով)։

Հիմնական հատկանիշներ՝

  • Ժառանգություն: Վերագրումը հնարավոր է միայն ժառանգության կոնտեքստում (հայր և որդի դասեր):
  • Սիգնատուրա: Որդու դասի մեթոդը պետք է ունենա նույն սիգնատուրան (անուն, պարամետրերի քանակը և տիպերը) և նույն վերադարձվող տիպը (կամ նրա kovariant ենթատիպը), ինչ հայրական դասի մեթոդը:
  • Հասանելիություն: Վերագրող մեթոդը պետք է լինի հասանելի որդի դասի համար (հաճախ public, protected
  • Պոլիմորֆիզմ: Վերագրումը հանդիսանում է ժամանակի պոլիմորֆիզմի հիմքը, որը թույլ է տալիս որդի դասի օբյեկտներին արձագանքել մեթոդի կանչին իրենց սեփական ձևով, նույնիսկ եթե նրանց դիմում են հայրական դասի հղումով։

Օրինակ (Java):

// Հայրական դաս
class Animal {
    // Մեթոդ, որը կվերագրի
    public void makeSound() {
        System.out.println("Հավկիթը հանում է ձայն");
    }
}

// Որդական դաս
class Dog extends Animal {
    // makeSound() մեթոդի վերագրում
    @Override // @Override նշումը ընտրովի է, բայց խորհուրդ է տրվում
    public void makeSound() {
        System.out.println("Շունը հաչում է");
    }
}

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

// Dog օբյեկտ ստեղծում
Animal myDog = new Dog();
// Մեթոդի կանչ. Կոչվի Dog- ի վերագրած տարբերակը
myDog.makeSound(); // Արտածում՝ Շունը հաչում է

// Animal օբյեկտ ստեղծում
Animal someAnimal = new Animal();
// Մեթոդի կանչ. Կոչվի Animal- ի տարբերակը
someAnimal.makeSound(); // Արտածում՝ Հավկիթը հանում է ձայն