×
Creating solutions

Čo znamená overloading

Jedným z často uvádzaných pojmov pri tvorbe programov v jazykoch C++ a Java je pojem overloading (preťažovanie). Overloading je často v odbornej literatúre spájaný s objektovo orientovaným programovaním a polymorfizmom (polymorphism). V tomto prípade ide o metódy v rozhraniach a abstraktných triedach.
V praxi sa je možné najčastejšie stretnúť s preťažovaním funkcií a metód. Preťažovanie funkcií a metód znamená definovanie viacerých funkcií s rovnakým názvom, ale rôznymi parametrami. Preťažovanie sa používa pre zníženie počtu názvov metód, ktoré si je potrebné pamätať.
Preťaženie je možné vykonať nasledujúcimi spôsobmi:
  • ak je definovaných viacero metód s rovnakým názvom, ale rôznymi parametrami.
  • ak je definovaných viacero metód s rovnakým názvom a počtom parametrov, ale v odlišnom poradí.
  • ak je definovaných viacero metód s rovnakým názvom, ktoré majú rovnaký počet a názvy parametrov, ale parametre sú rôzneho dátového typu.
Príklad: Metódy s rovnakým názvom, ale rôznymi parametrami.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Overloading {
public Overloading() {
overload();
overload(1);
overload(1, "text");
}
private void overload() {
System.out.println("Metóda bez parametra.");
}
private void overload(int number) {
System.out.println("Metóda s 1 parametrom.");
}
private void overload(int number, String text) {
System.out.println("Metóda s 2 parametrami.");
}
}
Príklad: Metódy s rovnakým názvom a parametrami, ale v odlišnom poradí.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Overloading {
public Overloading() {
overload(1, "text");
overload("text", 1);
}
private void overload(String text, int number) {
System.out.println("Metóda s parametrami string a number.");
}
private void overload(int number, String text) {
System.out.println("Metóda s parametrami number a string.");
}
}
Príklad: Metódy s rovnakým názvom a parametrami s rôznym dátovým typom.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Overloading {
public Overloading() {
overload("text", 1);
overload("text", 1.0);
}
private void overload(String text, int number) {
System.out.println("Metóda s celým číslom.");
}
private void overload(String text, double number) {
System.out.println("Metóda s reálnym číslom.");
}
}
K preťaženiu nedochádza ak sa metódy líšia v návratovej hodnote a nie v počte parametrov. Preťažovaním funkcií a metód sa vytvárajú metódy a funkcie s duplicitnými názvami. Aplikovaním preťažovania metód a funkcií sa odbúrava potreba vytvárania rôznych názvov pre rovnakú operáciu.
Niektoré programovacie jazyky vďaka svojej koncepcie práce s parametrami a argumentmi nepoužívajú preťažovanie čím odpadá zápis duplicitných názvov metód v programovom kóde. Výsledkom absencie preťažovania je prehľadnejší a kratší programový kód.

Záver

Okrem preťažovania funkcií a metód sa je možné stretnúť aj s preťažovaním operátorov. K preťažovaniu operátora dochádza, ak má operátor viacero významov. Preťažovať je možné aj constructor. Preťažovaný constructor sa nazýva aj parametrizovaný constructor.
Autor: Matej Lednár
Dátum: 9.5.2013
Kategória: Programovanie
Značky: programovanie, overloading, c++, java


Programovanie,programovanie,overloading,C++,Java
No part of this article may be reproduced without mention of the author and URL to this website.
For more information, see the About section.

Comments

Article has no comments.

Add a comment

Name (required)
Website
Message (required)
Submit
From latest