17.10. (3)Preklapanje imena funkcije (Overloading)
Completion requirements
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
stringiint— 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