Sobes.tech
Junior

Ի՞նչ են հարստացումը և պոլիմորֆիզմը հղումային տվյալների տեսակներում։

sobes.tech AI

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

Երասխանակությունը մեխանիզմ է, որը թույլ է տալիս մեկ դասին (նվագային դաս, ժառանգական դաս) ստանալ այլ դասի (հիմնային, ծնողական դաս) հատկություններ և վարքագիծ։ Սա խթանում է կոդի վերօգտագործումը և դասերի հիերարխիաների ստեղծումը:

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

Օրինակ (Java):

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

// Ժառանգական դաս
class Dog extends Animal {
    @Override // Մեթոդի վերագրում
    public void makeSound() {
        System.out.println("Հաու!");
    }
}

// Ժառանգական դաս
class Cat extends Animal {
    @Override // Մեթոդի վերագրում
    public void makeSound() {
        System.out.println("Մյաու!");
    }
}

class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Օբյեկտ Dog, բայց հղում՝ Animal
        Animal myCat = new Cat(); // Օբյեկտ Cat, բայց հղում՝ Animal

        myDog.makeSound(); // Կոչ է անում Dog-ի մեթոդը
        myCat.makeSound(); // Կոչ է անում Cat-ի մեթոդը
    }
}

Այս օրինակով՝

  • Ժառանգություն՝ Dog և Cat դասերը ժառանգում են Animal-ից։
  • Պոլիմորֆիզմ՝ myDog և myCat փոփոխականները հղում են համապատասխանաբար Dog և Cat օբյեկտներին, թեև ունեն Animal տիպ։ Երբ կանչում ենք makeSound(), կատարվում է օբյեկտի մեթոդը, ոչ թե հղման տիպի։