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(), կատարվում է օբյեկտի մեթոդը, ոչ թե հղման տիպի։