Uvod v preobremenitev in preglasitev na Javi

Naj najprej pogledamo, kaj ime nakazuje na prvi pogled. "Preobremenitev" pomeni: dodatno obremenitev nikogaršnje prvotne funkcionalnosti, kajne? Ker „Prevladovanje“ pomeni: zagotavljanje novih funkcij poleg prvotne funkcionalnosti vsakogar. V tem članku si bomo podrobneje ogledali preobremenitev in preglasitev na Javi. Da, tudi v Javi se te izvajajo na enak način programsko. Oglejmo si enega za drugim.

Preobremenitev na Javi

Kadar ima java razred več metod z istim imenom, vendar z različnimi argumenti, ga imenujemo metoda preobremenitev. Z enakim imenom samo povečujemo berljivost programske kode. Recimo, da moramo na določenih številkah izvesti nekaj operacij seštevanja. Recimo, da je ime naše metode "dodajanje ()". Tukaj je mogoče sestavljanje med dvema številkama, tremi številkami ali več. Odvisno od tega, koliko številk bo vključevalo dodatno delovanje, lahko spremenimo argumente (ali parametre) funkcije. Toda namesto tega bi, če bi napisali različne metode za različno število argumentov, težko prepoznati, saj bi bilo ime drugačno. Zato s preobremenitvijo dosežemo boljšo berljivost naše kode. Zdaj je vprašanje, kako bomo dosegli preobremenitev?

Oglejmo si jih ena za drugo s primeri kod.

1. način - S spreminjanjem števila parametrov

Torej, tukaj bomo naredili dodatno operacijo na nekaterih številkah. Za to ustvarimo razred, imenovan »AdditionOperation«. Znotraj tega razreda imamo dve metodi z imenom „dodajanje ()“. V eni od teh metod bomo izvedli seštevanje dveh števil. V drugem bomo izvedli seštevanje treh števil. To bomo dosegli s preprosto spremembo števila parametrov v teh metodah, ime pa bomo ohranili enako. Na ta način tukaj metodo "dodajanje ()" preobremenjujemo.

Koda:

public class AdditionOperation (
static int addition(int num1, int num2)(return num1+num2;) //function declarationand definition for addition of two numbers
static int addition(int num1, int num2, int num3)(return num1+num2+num3;) //function declarationand definition for addition of three numbers
public static void main(String args()) (
system.out.printin(addition(35, 36)); //method overloading
system.out.printin(addition(35, 36, 37)); //method overloading, we are calling same methods but for different number of arguments.
)
)

Izhod:

2. način - S spremembo vrste podatkov

Torej tukaj bomo naredili seštevanje na različnih vrstah, na primer med celo število in med dvojnim tipom. Za to ustvarimo razred, imenovan »AdditionOperation«. Znotraj tega razreda imamo na voljo dve metodi z imenom „dodajanje ()“. V eni od teh metod bomo izvedli seštevanje dveh celih števil. V drugem bomo izvedli seštevanje dveh dvojic. To bomo dosegli s preprosto spremembo vrste parametrov v teh metodah, ime pa bomo ohranili enako. Na ta način tukaj metodo "dodajanje ()" preobremenjujemo.

Koda:

public class additionOperation (
static int addition(int num1, int num2)(return num1+num2;) //function declarationand definition for addition of two numbers
static double addition(double num1, num2)(return num1+num2;) //function declarationand definition for addition of three numbers
public static void main(String args()) (
system.out.printin(addition(35, 36)); //method overloading
system.out.printin(addition(35.5, 36.6)); //method overloading, we are calling same methods but for different type of arguments.
)
)

Izhod:

Točke, ki jih je treba opozoriti na preobremenitev

  • Preobremenitev v javi je v bistvu "polimenzalni čas polimera Metoda preobremenitev v orfizmu C #". Kompilarni polimorfizem v javi imenujemo tudi kot "statična metoda dispeč" ali "zgodnja vezava". Kaj torej mislim s tem žargonom?
  • Polimorfizem, kot že ime pove, je v bistvu sposobnost sprejemanja številnih oblik (poli: veliko, morph: oblika). Torej, tukaj povezovanje ali vezava preobremenjene funkcije in predmeta se izvede čas prevajanja. Zato se imenuje polimorfizem v času prevajanja.
  • V bistvu se tukaj vezava funkcije na objekt opravi zgodaj pred izvajanjem (tj. Med časom prevajanja), zato je tudi imenovana kot "zgodnja vezava".
  • Statična dispečka je vrsta polimorfizma ali načina odpošiljanja, ki pove, kako bo java izbrala, katere funkcionalnosti metode bodo uporabljene v času prevajanja. (Mislim, ali bo izvedla seštevanje dveh številk ali treh števil v našem primeru kodiranja). Tako je ime znano tudi kot statična metoda Dispatch.

Prevladovanje v Javi

  • Kadar ima podrazred ali nadrejeni razred JAVA metodo z istim imenom in vsebuje enake parametre ali argumente in podoben tip vrnitve kot metoda, ki je prisotna v njenem razredu nadrejenega ali nadrejenega, potem lahko metodo nadrejenega razreda imenujemo kot prepisana metoda metode njenega matičnega razreda.
  • Recimo, da moramo opraviti nekaj prikaza zaslona glede na vrsto svojega razreda. Če pokličem metodo nadrejenega razreda, bo prikazalo sporočilo, ki je definirano v nadrejenem razredu. Toda, ko pokličemo metodo otroškega razreda, bo ta preglasilo prikazno sporočilo nadrejenega razreda in prikazalo prikazno sporočilo, ki je definirano znotraj metode otroškega razreda. Odvisno od tega, kateri zaslon moramo prikazati, lahko pokličemo sorodni razred (starš ali otrok). Tukaj ne spreminjamo imena metode, argumenta in vrste vrnitve. Pravkar spreminjamo funkcionalnost metode v otroškem razredu. Toda namesto tega, če ne storimo preglasitve, tj. Ne damo posebne izvedbe otroške metode, potem bo med klicanjem metode prikazalo isto sporočilo kot v nadrejenem razredu.
  • Med pisanjem kode bomo pred metodo preglasili opombo @ Preveri. Objava @Override prevajalniku pove, da naj bi metoda preglasila metodo, ki je bila deklarirana v nadrazredu. Čeprav tega ne uporabljate obvezno, preprečuje napake. Če metoda, ki je označena z @Override, ne preglasi načina, prevajalnik ustvari napako.

Pravila za preglasitev metode Java

  1. Metoda mora imeti isto ime kot v nadrejenem razredu
  2. Metoda mora imeti enak parameter kot v nadrejenem razredu.
  3. Obstajati mora odnos IS-A (dedovanje).

Koda:

//Parent or Super class
class Parent (
public void display() (
system.out.printin("Hello, I am from parent class");
)
)
//Child or sub class
class Sub extends Parent (
//Below method overrides the Parent display() method
// @override
public void display() (
system.out.printin("Hello, I am from child class");
)
)
//Driver class
public class Overriding (
public static void main?(String args())
(
Parent superObject = new Parent ();
superObject.display(); // Super class method is called
Parent subObject = new Sub();
subObject.display(); //Child class method is called by a parent type reference: this is functionality of method overriding
Sub subObject2 = new Sub(); //Child class method is called by a child type reference
subObject2.display();
)
)

Izhod:

Omejitve v načinu preglasitve:

  1. Zasebnih metod nadrejenega razreda ni mogoče preglasiti.
  2. Končnih metod ni mogoče razveljaviti
  3. Statičnih metod ni mogoče prevladati

Točke, ki jih je treba opozoriti na preglasitev

  • Preobremenjenost v javi je v bistvu polimorfizem, ki teče v času. Polimorfizem časa teka v javi imenujemo tudi kot "dinamična metoda odpreme" ali "pozna vezava". Kaj torej pomeni žargon?
  • Polimorfizem, kot že ime pove, je v bistvu sposobnost sprejemanja številnih oblik (poli: veliko, morph: oblika). Torej, tukaj klic na preobremenjeno funkcijo s objektom opravi čas izvajanja. Od tod imenovan polimorfizem teka.
  • V bistvu se tukaj vezava funkcije na objekt opravi pozno, kar je po prevajanju (tj. Med izvajanjem); zato je imenovan tudi kot „pozna vezava“.
  • Dinamična dispeč je vrsta polimorfizma ali metode odpošiljanja, ki pove, kako bo java izbrala, katere funkcionalnosti metode bodo uporabljene v času izvajanja. Tako je ime znano tudi kot dinamična metoda Dispatch.

Zaključek

S tem zaključimo naše učenje teme "Preobremenitev in preglasitev na Javi". Kode, omenjene v zgornje primere, napišite v prevajalnik java in preverite izhod. Učenje kod bo nepopolno, če se ne boste lotili sami, saj boste s tem izboljšali svoje veščine kodiranja. Srečno kodiranje !!

Priporočeni članki

To je vodnik za preobremenitev in preglasitev na Javi. Tukaj razpravljamo o metodah preobremenitve, skupaj s pravili in omejitvami preglasitve na Javi. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Prevlado v JavaScript
  2. Prevladujoče v OOP
  3. Kaj so generiki na Javi?
  4. Prevladujoče v PHP
  5. Python preobremenitev
  6. Dedovanje v PHP
  7. Celoten vodnik po dedovanju Pythona
  8. Preobremenitev in preglasitev v C #
  9. Vrste in napake pri rokovanju v JavaScript
  10. Primeri in delovanje generike v C #
  11. Funkcija in pravila preglasitve v Pythonu