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 } } 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 } } Xulosa qilib aytganda overriding ham overloading ham metodlardan turli yo'llarda foydalanishni osonlashtiradi.

Mar 20, 2025 - 11:54
 0
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
    }
}

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

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