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
    {
        // Draw методун кайра аныктоо
        public override void Draw()
        {
            // Дөңгөлөк үчүн ишке ашыруу
        }
    }
    
    // Түзүүчү класс 2
    class Square : Shape
    {
        // Draw методун кайра аныктоо
        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;
        }
    }
    

Полиформизм ийкемдүү, кеңейүүчү жана оңой колдоого алынуучу код түзүүгө жардам берет. Ал ар башка түрдөгү объекттер менен иштей турган жалпы код жазууга мүмкүндүк берет.