Junior
Ի՞նչ է ժառանգությունը և պոլիմորֆիզմը հղումային տվյալների տիպերում։
sobes.tech AI
Պատասխան AI-ից
Ներառումը — դա մեխանիզմ է, որը թույլ է տալիս նոր դասին (մերո/մերորդ դասը) ժառանգել առկա դասի (վերևի դաս/հայրական դաս) հատկությունները (գոտիները) և վարքագիծը (մեթոդները), ընդլայնելով կամ վերագրելով ֆունկցիոնալությունը: Սա նպաստում է կոդի կրկնվող օգտագործմանը և «էական է» (is-a) հարաբերությունների հաստատմանը:
Պոլիմորֆիզմը — դա հնարավորությունն է տարբեր դասերի օբյեկտների տարբեր կերպ պատասխանել նույն մեթոդի անվան վրա, կախված իրենց կոնկրետ տիպից ժամանակի ընթացքում։ Դա ապահովում է կոդի ճկունություն և ընդլայնելիություն, թույլ տալով մշակել ենթաօբյեկտների օբյեկտները վերնագրի միջոցով:
Այս կոնցեպցիաները կարևոր դեր են խաղում հղումային տվյալների տիպերում (класаներում):
- Ներառում: Հետո դասը հասանելի է վերևի դասի անդամներին և կարող է ավելացնել իր սեփական կամ փոխել ժառանգած մեթոդների վարքագիծը (վերագրում — overriding): Օբյեկտը ենթաօբյեկտից կարող է օգտագործվել ամենուր, որտեղ սպասվում է վերևի դասի օբյեկտ:
- Պոլիմորֆիզմ: Տարբեր օբյեկտներ, որոնք պատկանում են նույն ժառանգական հիերարխիային, կարող են մշակվել նույն կոդով, որը կանչում է նույն մեթոդը, բայց իրականացմանը մասնակցում է կոնկրետ օբյեկտի տիպը ժամանակի ընթացքում:
Օրինակ Java-ում:
// Վերևի դաս (հայր)
class Animal {
public void makeSound() {
System.out.println("Ելք է տալիս ձայն");
}
}
// Ներառվող դաս (մերո), ժառանգում է Animal-ից
class Dog extends Animal {
// Վերագրում է վերևի դասի մեթոդը
@Override
public void makeSound() {
System.out.println("Հավ!");
}
}
// Ներառվող դաս (մերո), ժառանգում է Animal-ից
class Cat extends Animal {
// Վերագրում է վերևի դասի մեթոդը
@Override
public void makeSound() {
System.out.println("Մյաո!");
}
}
// Պոլիմորֆիզմի օրինակ
public class PolymorphismExample {
public static void main(String[] args) {
Animal myAnimal = new Animal(); // վերևի դասի օբյեկտ
Animal myDog = new Dog(); // ենթաօբյեկտ, վերնագրի միջոցով
Animal myCat = new Cat(); // ենթաօբյեկտ, վերնագրի միջոցով
myAnimal.makeSound(); // Դուրս է գալիս՝ Ելք է տալիս ձայն
myDog.makeSound(); // Դուրս է գալիս՝ Հավ! (պոլիմորֆիզմ — կանչվում է Dog մեթոդը)
myCat.makeSound(); // Դուրս է գալիս՝ Մյաո! (պոլիմորֆիզմ — կանչվում է Cat մեթոդը)
}
}