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.
Top comments (0)