Junior
Mit lehet módosítani a módszerek túlterhelésekor a programozásban?
sobes.tech MI
Válasz az MI-től
A metódus túlterhelésekor (method overloading) a következőket lehet módosítani:
- Paraméterek száma: Azonos névvel rendelkező metódusok különböző számú formális paraméterrel rendelkezhetnek.
- Paraméterek típusai: Azonos névvel és paraméterszámmal rendelkező metódusok eltérhetnek a paraméterek típusában.
- Paraméterek típusainak sorrendje: Ha a metódusok ugyanannyi paraméterrel és ugyanazokkal a típusokkal rendelkeznek, de azok különböző sorrendben vannak, ez szintén túlterhelésnek számít.
Java példák:
// Túlterhelt metódusokat tartalmazó osztály
class Calculator {
// Két egész szám összeadása
public int add(int a, int b) {
return a + b;
}
// Túlterhelt metódus: három egész szám összeadása
public int add(int a, int b, int c) {
return a + b + c;
}
// Túlterhelt metódus: két lebegőpontos szám összeadása
public double add(double a, double b) {
return a + b;
}
// Túlterhelt metódus: egész és lebegőpontos szám összeadása
public double add(int a, double b) {
return a + b;
}
// Túlterhelt metódus: lebegőpontos és egész szám összeadása
public double add(double a, int b) {
return a + b;
}
}
Mit nem lehet módosítani túlterheléskor:
- Visszatérési típus: Két ugyanolyan névvel és aláírással (paraméterek száma, típusai, sorrendje) rendelkező metódus csak a visszatérési típusban különbözhet.
- Hozzáférési módosítók: A hozzáférési módosítók (public, private, protected, default) nem befolyásolják a túlterhelést.
statickulcsszó jelenléte vagy hiánya: Nem lehet túlterhelni egy statikus metódust egy nem statikus metódussal, vagy fordítva.- Kivételek listája: A kivételek listája nem része a metódus aláírásának, és nem befolyásolja a túlterhelést.
A túlterhelés és felülírás összehasonlítása:
| Jellemző | Túlterhelés (Overloading) | Felülírás (Overriding) |
|---|---|---|
| Hol történik | Egy osztályban vagy osztályhierarchiában | Egy alosztályban |
| Metódus neve | Ugyanaz | Ugyanaz |
| Metódus aláírása | Különböző (paraméterek száma, típusai, sorrendje) | Ugyanaz |
| Visszatérési típus | Lehet eltérő (de nem az egyetlen különbség) | Ugyanaz vagy kovariáns (objektumok esetén) |
| Célja | Különböző típusok vagy argumentumok számára több lehetőség biztosítása | Örökölt metódus viselkedésének módosítása a leszármazott osztályban |
| Metódusok közötti kapcsolat | Független metódusok | "Létezik" kapcsolat (öröklődés) |
| Polimorfizmus | Fordítási időben (statikus) polimorfizmus | Futási időben (dinamikus) polimorfizmus |