Sobes.tech
Junior

Երբ մեթոդը համարվում է վերաշարադրած (overriding)?

sobes.tech AI

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

Օբյեկտային ուղղված ծրագրավորման մեջ մեթոդը համարվում է վերագրած (overriding), երբ՝

  1. այն սահմանված է ենթակլասում նույն անունով, վերադարձվող տիպով և պարամետրերի ցանկով (հատկանիշով), ինչպիսիք են վերին դասի մեթոդը:
  2. վերին դասի մեթոդը private չէ:
  3. ենթակլասի մեթոդը չունի ավելի խիստ մուտքի մոդիֆիկատոր, քան վերին դասի մեթոդը:
  4. դեպքերում, երբ արտահայտվում են արտահայտություններ, վերագրած մեթոդը չի կարող հայտարարել ստուգվող արտահայտություններ ([checked exceptions]), որոնք ավելի ընդհանուր են, քան վերին դասի մեթոդում նշվածները:

Երբ վերագրած մեթոդը կանչվում է ենթակլասի օբյեկտի վրա, կատարվում է ենթակլասի մեթոդի տարբերակը։ Սա ժամանակի ընթացքում պոլիմորֆիզմի օրինակ է։

Օրինակ Java-ում՝

// java

class Animal {
    public void makeSound() {
        System.out.println("Ընդհանուր կենդանու ձայն");
    }
}

class Dog extends Animal {
    @Override // @Override նշանավորումը հաստատում է, որ մեթոդը վերագրած է
    public void makeSound() {
        System.out.println("Հաու հաու");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Մյաո");
    }
}