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;
        }
    }
    

პოლიმორფიზმი ხელს უწყობს უფრო მოქნილი, გაფართოებადი და ადვილად შენარჩუნებადი კოდის შექმნას. იგი საშუალებას აძლევს დაწეროთ საერთო კოდი, რომელიც მუშაობს სხვადასხვა ტიპის ობიექტებთან.