MySQL Java JavaScript PHP Python HTML-CSS C-sharp

Supraîncărcarea metodelor

În program, putem utiliza metode cu același nume, dar cu tipuri și/sau număr diferit de parametri. Acest mecanism se numește supraîncărcarea metodelor (method overloading).

De exemplu:

public class Program{  
     
   public static void main(String[] args) {  
       
       System.out.println(sum(2, 3));          // 5  
       System.out.println(sum(4.5, 3.2));      // 7.7  
       System.out.println(sum(4, 3, 7));       // 14  
   }  
   static int sum(int x, int y){  
           
       return x + y;  
   }  
   static double sum(double x, double y){  
           
       return x + y;  
   }  
   static int sum(int x, int y, int z){  
           
       return x + y + z;  
   }  
}

Aici sunt definite trei variante sau trei supraîncărcări ale metodei sum(), iar la apelul acesteia, în funcție de tipul și numărul parametrilor transmiși, sistemul va alege exact versiunea care se potrivește cel mai bine.

Este important de menționat că supraîncărcarea metodelor este influențată de numărul și tipurile parametrilor. Cu toate acestea, diferențele în tipul valorii returnate nu contează pentru supraîncărcare. De exemplu, în următorul caz metodele diferă în funcție de tipul valorii returnate:

public class Program{  
     
   public static void main(String[] args) {  
       
       System.out.println(sum(2, 3));  
       System.out.println(sum(4, 3));  
   }  
   static int sum(int x, int y){  
           
       return x + y;  
   }  
   static double sum(int x, int y){  
           
       return x + y;  
   }  
}

Totuși, acest lucru nu va fi considerat supraîncărcare. Mai mult, un astfel de program este incorect și pur și simplu nu va fi compilat, deoarece metoda cu același număr și tip de parametri este definită de mai multe ori.

← Lecția anterioară Lecția următoare →