Sobes.tech
Junior

Kas ir polimorfisms programmēšanā?

sobes.tech AI

Atbilde no AI

Polimorfisms — tas spēja dažādu klases objektiem reaģēt uz vienu un to pašu metodes izsaukumu dažādi. Tas tiek panākts, izmantojot mantošanu, abstraktus klases un saskarnes. C# polimorfisms izpaužas, pārrakstot (overriding) bāzes klases metodes un pārslodzes (overloading) metodes:

Polimorfisma piemēri:

  1. Metodes pārrakstīšana (Runtime Polymorphism): Apakšklase nodrošina savu versiju metodes, kas ir norādīta bāzes klasē ar virtual. To veic ar override atslēgvārdu.

    // Bāzes klase
    class Shape
    {
        // Virituāla metode, kuru var pārrakstīt
        public virtual void Draw()
        {
            // Noklusējuma realizācija
        }
    }
    
    // Apakšklase 1
    class Circle : Shape
    {
        // Metodes pārrakstīšana
        public override void Draw()
        {
            // Ģeometriskā apraksta realizācija
        }
    }
    
    // Apakšklase 2
    class Square : Shape
    {
        // Metodes pārrakstīšana
        public override void Draw()
        {
            // Kvadrāta realizācija
        }
    }
    

    Šādā veidā var izveidot Shape objektu sarakstu un izsaukt Draw katram, un tiks izsaukta konkrētā realizācija.

  2. Pārslodze (Compile-time Polymorphism): Daudzas metodes ar vienādiem nosaukumiem, bet dažādām parametru sērijām (skaits vai tipi) vienā klasē.

    class Calculator
    {
        // Pārslodzes metode Add (int)
        public int Add(int x, int y)
        {
            return x + y;
        }
    
        // Pārslodzes metode Add (double)
        public double Add(double x, double y)
        {
            return x + y;
        }
    }
    

Polimorfisms veicina elastīgāku, paplašināmu un viegli uzturamu kodu. Tas ļauj rakstīt vispārēju kodu, kas var strādāt ar dažādu tipu objektiem.