logo

Razlika med preobremenitvijo metode in preglasitvijo metode v Javi

Razlike med preobremenitvijo metode in preglasitvijo metode v Javi so naslednje:

Preobremenitev metode



Preglasitev metode

Preobremenitev metode je polimorfizem v času prevajanja.Preglasitev metode je polimorfizem izvajalnega časa.
Preobremenitev metod pomaga povečati berljivost programa.Preglasitev metode se uporablja za odobritev posebne izvedbe metode, ki jo že zagotavlja njen nadrejeni razred ali nadrazred.
Pojavi se znotraj razreda.Izvaja se v dveh razredih z dednimi razmerji.
Preobremenitev metode lahko zahteva dedovanje ali pa tudi ne.Preglasitev metode vedno zahteva dedovanje.
Pri preobremenitvi metode morajo imeti metode enako ime in različne podpise.Pri preglasitvi metode morajo imeti metode isto ime in isti podpis.
Pri preobremenitvi metode je vrnjeni tip lahko ali ne enak, vendar moramo le spremeniti parameter.Pri preglasitvi metode mora biti povratni tip enak ali sorazličen.
Statična vezava se uporablja za preobremenjene metode.Za preglasitev metod se uporablja dinamična vezava.
Slaba zmogljivost zaradi polimorfizma časa prevajanja.Omogoča boljše delovanje. Razlog za to je, da se povezovanje preglasenih metod izvaja med izvajanjem.
Zasebne in končne metode so lahko preobremenjene.Zasebnih in končnih metod ni mogoče preglasiti.
Seznam argumentov mora biti med preobremenitvijo metode drugačen.Seznam argumentov mora biti enak pri preglasitvi metode.

Preobremenitev metode v Javi

Preobremenitev metode je Polimorfizem časa prevajanja . Pri preobremenitvi metode ima več kot ena metoda isto ime metode z različnim podpisom v razredu. Pri preobremenitvi metode je vrnjeni tip lahko ali ne enak, vendar moramo spremeniti parameter, ker v Javi ne moremo doseči preobremenitve metode s spremembo samo vrnjenega tipa metode.

Primer preobremenitve metode:



Java
// Java Program to Implement // Method Overloading import java.io.*; class MethodOverloadingEx {  static int add(int a, int b) { return a + b; }  static int add(int a, int b, int c)  {  return a + b + c;  }  // Main Function  public static void main(String args[])  {  System.out.println('add() with 2 parameters');  // Calling function with 2 parameters  System.out.println(add(4, 6));  System.out.println('add() with 3 parameters');  // Calling function with 3 Parameters  System.out.println(add(4, 6, 7));  } }>

Izhod
add() with 2 parameters 10 add() with 3 parameters 17>

Preglasitev metode v Javi

Preglasitev metode je Polimorfizem izvajalnega časa . Pri preglasitvi metode izpeljani razred zagotavlja posebno izvedbo metode, ki jo že zagotavlja osnovni razred ali nadrejeni razred. Pri preglasitvi metode mora biti povratni tip enak ali sorazličen (vrnjeni tip se lahko spreminja v isto smer kot izpeljani razred).

Primer preglasitve metode:

Java
// Java Program to implement // Method Overriding import java.io.*; // Base Class class Animal {  void eat()  {  System.out.println('eat() method of base class');  System.out.println('eating.');  } } // Inherited Class class Dog extends Animal {  void eat()  {  System.out.println('eat() method of derived class');  System.out.println('Dog is eating.');  } } // Driver Class class MethodOverridingEx {  // Main Function  public static void main(String args[])  {  Dog d1 = new Dog();  Animal a1 = new Animal();  d1.eat();   a1.eat();  // Polymorphism: Animal reference pointing to Dog object  Animal animal = new Dog();    // Calls the eat() method of Dog class  animal.eat();   } }>

Izhod
eat() method of derived class Dog is eating. eat() method of base class eating. eat() method of derived class Dog is eating.>

Razlaga zgornjega programa:



Tukaj lahko vidimo, da je metoda eat() preglasila v imenu izpeljanega razreda pes ki je že na voljo z imenom osnovnega razreda žival . Ko ustvarimo primerek razreda Dog in pokličemo metodo eat(), vidimo, da se izvaja samo metoda izpeljanega razreda eat() namesto metode osnovnega razreda eat(), in Ko ustvarimo primerek razreda Animal in pokličemo eat( ), vidimo, da se izvaja samo metoda osnovnega razreda eat() namesto metode izpeljanega razreda eat().