Qual è la differenza tra il sovraccarico del metodo e l'override?

Questo articolo copre le principali differenze tra il sovraccarico del metodo e l'override in java con vari esempi tra cui super parola chiave e varie regole.

Il linguaggio di programmazione Java è la scelta migliore quando si tratta di . Con concetti come classi , , , ecc, diventa estremamente facile lavorare con . La facilità di accesso e la sintassi semplice rendono il codice efficiente e anche meno complesso. In questo articolo, impareremo il sovraccarico e l'override dei metodi in Java. Di seguito sono riportati gli argomenti discussi in questo blog:

Che cos'è il sovraccarico del metodo in Java?

Il sovraccarico del metodo consente al metodo di avere lo stesso nome che differisce in base agli argomenti o ai tipi di argomento. Può essere correlato al polimorfismo in fase di compilazione. Di seguito sono riportati alcuni suggerimenti che dobbiamo tenere a mente durante il sovraccarico dei metodi in Java.





  • Non è possibile sovraccaricare un tipo restituito.

  • Anche se possiamo sovraccaricare , gli argomenti oi parametri di input devono essere diversi.



  • Non possiamo sovraccaricare due metodi se differiscono solo per una parola chiave statica.

  • Come altri metodi statici, anche il metodo main () può essere sovraccaricato.

sovraccarico del metodo - sovraccarico del metodo e sovrascrittura in Java- edureka



Diamo un'occhiata a un semplice programma per capire come funziona il sovraccarico dei metodi in Python.

public class Div {public int div (int a, int b) {return (a / b)} public int div (int a, int b, int c) {return ((a + b) / c)} public static void main (String args []) {Div ob = new Div () ob.div (10, 2) ob.div (10, 2, 3)}}
 Produzione: 5 4

Nel programma sopra, abbiamo due metodi con lo stesso nome ma parametri diversi. Ecco come funziona il sovraccarico del metodo .

Perché il sovraccarico del metodo?

Il vantaggio principale dell'utilizzo del sovraccarico del metodo in Java è che ci dà la libertà di non definire una funzione più e più volte per fare la stessa cosa. Nell'esempio seguente, i due metodi eseguono sostanzialmente la divisione, quindi possiamo avere metodi diversi con lo stesso nome ma con parametri diversi. Aiuta anche nel polimorfismo in fase di compilazione.

Sovraccarico del metodo main ():

Di seguito è riportato un esempio per eseguire l'overload del metodo main () in java.

public class Edureka {public static void main (String [] args) {System.out.println ('hello') Edureka.main ('edurekan')} public static void main (String arg1) {System.out.println (' welcome '+ arg1) Edureka.main (' welcome ',' to edureka ')} public static void main (String arg1, String arg2) {System.out.println (' hello ', + arg1, + arg2)}}
 Produzione: ciao benvenuto edurekan ciao, benvenuto in edureka

Esempi di sovraccarico del metodo

  • Programma per sovraccaricare i metodi statici in java.
public class Test {public static int func (int a) {return 100} public static char func (int a, int b) {return 'edureka'} public static void main (String args []) {System.out.println ( func (1)) System.out.println (func (1,3))}}
 Produzione: 100 edureka
  • Programma per sovraccaricare tre metodi con lo stesso nome.
public class Add {public int add (int a, int b) {return (a + b)} public int add (int a, int b, int c) {return (a + b + c)} public double add (double a, double b) {return (a + b)} public static void main (String args []) {Add ob = new Add () ob.add (15,25) ob.add (15,25,35) ob .add (11.5, 22.5)}}
 Produzione: 40 75 34

Che cos'è l'override del metodo in Java?

L'ereditarietà in java implica una relazione tra le classi padre e figlio. Ogni volta che entrambe le classi contengono metodi con lo stesso nome e argomenti o parametri, è certo che uno dei metodi sovrascriverà l'altro metodo durante l'esecuzione. Il metodo che verrà eseguito dipende dall'oggetto.

Se l'oggetto della classe figlio chiama il metodo, il metodo della classe figlio sovrascriverà il metodo della classe genitore. Altrimenti, se l'oggetto della classe genitore chiama il metodo, verrà eseguito il metodo della classe genitore.

L'override del metodo aiuta anche a implementare il polimorfismo di runtime in java. Facciamo un semplice esempio per capire come funziona l'override del metodo in java.

come usare tostring in java
class Parent {void view () {System.out.println ('this is a parent class method)}} class Child extends Parent {void view () {System.out.println (' this is a child class method)}} public static void main (String args []) {Parent ob = new Parent () ob.view () Parent ob1 = new Child () ob1.view ()
 Produzione: questo è un metodo di classe figlio

Regole per l'override del metodo

  • Il accedere a modifica può solo consentire un maggiore accesso per il metodo sovrascritto.

  • PER finale metodo non supporta l'override del metodo.

  • Un metodo statico non può essere sovrascritto.

  • I metodi privati ​​non possono essere sovrascritti.

  • Il tipo restituito del metodo di sostituzione deve essere lo stesso.

  • Possiamo chiamare il metodo della classe genitore nel metodo override utilizzando la parola chiave super.

  • PER costruttore non può essere sovrascritto perché una classe figlia e una classe genitore non possono avere il costruttore con lo stesso nome.

Esempio di sostituzione del metodo

  • Programma per mostrare l'override utilizzando la parola chiave super
class Parent {void show () {System.out.println ('parent class method')} class Child extends Parent {void show () {super.show () System.out.println ('child class method')} public static void main (String args []) {Parent ob = new Child () ob.show ()}}
 Produzione: metodo della classe genitore metodo della classe figlio

Overload vs override: differenza tra overload del metodo e override del metodo

Di seguito sono riportate le principali differenze tra il sovraccarico del metodo e l'override in Java.

Metodo di sovraccarico Sostituzione del metodo
  • Viene utilizzato per aumentare la leggibilità del programma
  • Fornisce un'implementazione specifica del metodo già nella classe genitore
  • Viene eseguito all'interno della stessa classe
  • Coinvolge più classi
  • I parametri devono essere diversi in caso di sovraccarico
  • I parametri devono essere gli stessi in caso di override
  • È un esempio di polimorfismo in fase di compilazione
  • È un esempio di polimorfismo a runtime
  • Il tipo restituito può essere diverso ma è necessario modificare anche i parametri.
  • Il tipo restituito deve essere lo stesso per l'override
  • I metodi statici possono essere sovraccaricati
  • L'override non implica metodi statici.

In questo blog, abbiamo discusso in dettaglio il sovraccarico del metodo e l'override del metodo. Con il coinvolgimento di classi, oggetti e concetti come ereditarietà e polimorfismo diventa abbastanza importante avere un'idea chiara di cosa significhi sovraccaricare o sovrascrivere i metodi in java.

Il linguaggio di programmazione Java è un apice nella programmazione orientata agli oggetti e incorpora molte applicazioni. Con la domanda e la popolarità, un aspirante sviluppatore Java deve essere esperto nei concetti fondamentali del linguaggio di programmazione. Iscriviti a Edureka's per dare il via al tuo apprendimento.

Hai domande per noi? si prega di menzionarlo nella sezione commenti di questo articolo su 'Override del metodo vs override del metodo in Java' e ti risponderemo il prima possibile.