Sobes.tech
Junior

Ի՞նչ է ժառանգությունը և պոլիմորֆիզմը:

sobes.tech AI

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

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

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

Հիմնական տարբերությունը՝

  • Ժառանգություն սահմանում է հարաբերություններ դասերի միջև (հայր-որդի) և թույլ է տալիս կոդի կրկնակի օգտագործում:
  • Պոլիմորֆիզմ թույլ է տալիս մուտք գործել տարբեր օբյեկտների միջոցով՝ ընդհանուր ինտերֆեյսի միջոցով, և իրականացնել համապատասխան մեթոդը՝ կախված օբյեկտի իրական տիպից՝ գործարկման ժամանակ:

Գործարկման ժամանակի պոլիմորֆիզմի օրինակ՝

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

class Dog extends Animal {
    @Override
    public void sound() {
        System.out.println("Հաու-հաու");
    }
}

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

public class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog(); // Պոլիմորֆիզմ՝ Animal տիպի փոփոխական, որը հղում է անում Dog օբյեկտին
        Animal myCat = new Cat(); // Պոլիմորֆիզմ՝ Animal տիպի փոփոխական, որը հղում է անում Cat օբյեկտին

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