Sobes.tech
Junior

Proqramlaşdırmada çox formallıq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Polimorfizm, müxtəlif siniflərdən olan obyektlərin eyni metod çağırışına müxtəlif şəkildə cavab vermək qabiliyyətidir. Bu, irsiyyət, abstrakt siniflər və interfeyslər vasitəsilə əldə edilir. C#-da polimorfizm, əsas sinfin metodlarının törəmə sinflərdə yenidən yazılması (overriding) və metodların yüklənməsi (overloading) vasitəsilə nümayiş etdirilir.

Polimorfizm nümunələri:

  1. Metodların yenidən yazılması (İcra vaxtı Polimorfizm): Törəmə sinif, əsas sinifdə elan olunmuş metodun öz tətbiqini təmin edir. Bunun üçün əsas sinifdə virtual açar sözü istifadə olunur, törəmə sinifdə isə override.

    // Əsas sinif
    class Shape
    {
        // Yenidən yazıla bilən virtual metod
        public virtual void Draw()
        {
            // Standart tətbiq
        }
    }
    
    // Törəmə sinif 1
    class Circle : Shape
    {
        // Draw metodunun yenidən yazılması
        public override void Draw()
        {
            // Dairə üçün tətbiq
        }
    }
    
    // Törəmə sinif 2
    class Square : Shape
    {
        // Draw metodunun yenidən yazılması
        public override void Draw()
        {
            // Kvadrat üçün tətbiq
        }
    }
    

    Bu halda, Shape obyektlərinin siyahısı yaradılır və hər biri üçün Draw metodu çağırılır, və hər bir fiqur növü üçün xüsusi tətbiq çağırılır.

  2. Metodların yüklənməsi (Compile-time Polimorfizm): Eyni adlı, lakin fərqli imzaya (parametrlərin sayı və ya tiplərinə görə) malik bir neçə metod.

    class Calculator
    {
        // Yüklənmiş Add metodu (int üçün)
        public int Add(int x, int y)
        {
            return x + y;
        }
    
        // Yüklənmiş Add metodu (double üçün)
        public double Add(double x, double y)
        {
            return x + y;
        }
    }
    

Polimorfizm, daha çevik, genişlənə bilən və asan saxlanılan kod yaratmağa kömək edir. Bu, müxtəlif tiplərdə obyektlərlə işləyə bilən ümumi kod yazmağa imkan verir.