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.

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.