U C# je dozvoljeno da u okviru iste klase postoje više metoda sa istim imenom, pod uslovom da se razlikuju po:

  • broju parametara,

  • tipu parametara,

  • ili redosledu tipova parametara.

To se zove preklapanje metoda (method overloading).

Primena overloading-a povećava čitljivost i fleksibilnost koda.


2. Primer

class Matematika
{
    public static int Zbir(int a, int b)
    {
        return a + b;
    }

    public static double Zbir(double a, double b)
    {
        return a + b;
    }

    public static int Zbir(int a, int b, int c)
    {
        return a + b + c;
    }
}

class Program
{
    static void Main()
    {
        Console.WriteLine(Matematika.Zbir(2, 3));        // poziva prvu
        Console.WriteLine(Matematika.Zbir(2.5, 3.1));    // poziva drugu
        Console.WriteLine(Matematika.Zbir(1, 2, 3));     // poziva treću
    }
}

Kompajler sam bira koju verziju da pozove, na osnovu prosleđenih argumenata.


3. Vežbe

Zadatak 1:
Kreirati klasu Tekst sa metodom Ispisi koja ispisuje tekst:

  • ako primi string — ispisuje tekst,

  • ako primi int — ispisuje „Broj: “ + broj,

  • ako primi string i int — ispisuje „Tekst: ... Broj: ...“.

class Tekst
{
    public static void Ispisi(string s)
    {
        Console.WriteLine(s);
    }

    public static void Ispisi(int x)
    {
        Console.WriteLine("Broj: " + x);
    }

    public static void Ispisi(string s, int x)
    {
        Console.WriteLine("Tekst: " + s + " Broj: " + x);
    }
}

Zadatak 2:
Kreirati metodu Povrsina koja računa površinu:

  • kvadrata (jedan parametar),

  • pravougaonika (dva parametra),

  • kruga (double r).

class Geometrija
{
    public static double Povrsina(double a)
    {
        return a * a;
    }

    public static double Povrsina(double a, double b)
    {
        return a * b;
    }

    public static double PovrsinaKruga(double r)
    {
        return Math.PI * r * r;
    }
}

Last modified: Friday, 17 October 2025, 6:12 PM