DEV Community

Munisa Kuranbekova
Munisa Kuranbekova

Posted on

C#da overriding va overloading

Assalomu aleykum! Bugungi postda overriding va overloading haqida tushuncha berishga harakat qilaman.
Overriding ham overloading ham metodlarga bir xil nom berish , lekin turli yo'llarda foydalanish imkonini beradi. Shunga qaramay ikkalasi bir-biridan farqli ravishda ishlaydi.
Overloading

  • Metod nomi bir xil, ammo parametrlari(o'zgaruvchilari) har xil.

  • Me'ros talab qilmaydi.

  • Bir metodni bir necha turini yaratib ishlatish uchun foydaliniladi.
    Misol:

using System;

class Calculator
{
    // Bitta parametrli metod
    public int Add(int a)
    {
        return a + 10;
    }

    // ikkita parametrli metod (Overload qilingan)
    public int Add(int a, int b)
    {
        return a + b;
    }

    // Turli o'zgaruvchili metod (Overload qilingan)
    public double Add(double a, double b)
    {
        return a + b;
    }
}

class Program
{
    static void Main()
    {
        Calculator calc = new Calculator();
        Console.WriteLine(calc.Add(5));        // Add(int)ni chaqiradi
        Console.WriteLine(calc.Add(5, 10));    // Add(int, int)ni chaqiradi
        Console.WriteLine(calc.Add(5.5, 2.5)); // Add(double, double)ni chaqiradi
    }
}

Enter fullscreen mode Exit fullscreen mode

Overriding

  • Metod nomi bir xil, parametrlari bir xil, ishlashi har xil.

  • Me'ros olish, ya'ni biron joydan ko'chirish, olish bilan amalga oshiriladi.
    Misol:

using System;

class Animal
{
    public virtual void MakeSound()  // Virtual metod
    {
        Console.WriteLine("Animal makes a sound");
    }
}

class Dog : Animal
{
    public override void MakeSound()  // Overriding qilingan metod
    {
        Console.WriteLine("Dog barks");
    }
}

class Program
{
    static void Main()
    {
        Animal myAnimal = new Animal();
        myAnimal.MakeSound();  // Output: Animal makes a sound

        Dog myDog = new Dog();
        myDog.MakeSound();  // Output: Dog barks

        Animal anotherDog = new Dog();  // E'lon qilib saqlab olmoq
        anotherDog.MakeSound();  // Output: Dog barks
    }
}

Enter fullscreen mode Exit fullscreen mode

Xulosa qilib aytganda overriding ham overloading ham metodlardan turli yo'llarda foydalanishni osonlashtiradi.

Top comments (0)