Sobes.tech
Junior

Ի՞նչ է պոլիմորֆիզմը ծրագրավորման մեջ։

sobes.tech AI

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

Պոլիմորֆիզմը՝ դա տարբեր դասերի օբյեկտների կարողությունն է տարբեր կերպ արձագանքել նույն մեթոդի կանչին: Դա հասնում է ժառանգության, աբստրակտ դասերի և ինտերֆեյսների օգտագործմամբ: C#-ում պոլիմորֆիզմը արտահայտվում է բազային դասի մեթոդների վերագրումով (overriding) և перегрузкой (overloading):

Պոլիմորֆիզմի օրինակներ:

  1. Մեթոդների վերագրում (Runtime Polymorphism): Դուստր դասը տրամադրում է սեփական իրականացմանը բազային դասում նշված մեթոդը: Դրա համար բազային դասում օգտագործվում է virtual բանալի բառը, իսկ դուստր դասում՝ override:

    // Բազային դաս
    class Shape
    {
        // Վիրտուալ մեթոդ, որը կարող է վերագրել
        public virtual void Draw()
        {
            // Դեֆոլտ իրականացում
        }
    }
    
    // Դուստր դաս 1
    class Circle : Shape
    {
        // Մեթոդի վերագրում
        public override void Draw()
        {
            // Շրջանի համար իրականացում
        }
    }
    
    // Դուստր դաս 2
    class Square : Shape
    {
        // Մեթոդի վերագրում
        public override void Draw()
        {
            // քառակուսի համար իրականացում
        }
    }
    

    Այս դեպքում կարող եք ստեղծել Shape օբյեկտների ցանկ և կանչել Draw մեթոդը յուրաքանչյուրի համար, և կկոչվի կոնկրետ իրականացումը յուրաքանչյուր ձևի համար:

  2. Մեթոդների перегрузка (Compile-time Polymorphism): Միևնույն անունով մի քանի մեթոդներ, բայց տարբեր սինտաքսներ (պարամետրերի քանակը կամ տիպերը) մեկ դասում:

    class Calculator
    {
        // перегруженный մեթոդ Add (int)
        public int Add(int x, int y)
        {
            return x + y;
        }
    
        // перегруженный մեթոդ Add (double)
        public double Add(double x, double y)
        {
            return x + y;
        }
    }
    

Պոլիմորֆիզմը նպաստում է ավելի ճկուն, ընդլայնվող և հեշտությամբ պահպանվող կոդի ստեղծմանը: Դա թույլ է տալիս գրել ընդհանուր կոդ, որը կարող է աշխատել տարբեր տիպերի օբյեկտների հետ։