Quina diferència hi ha entre la sobrecàrrega i la substitució del mètode?

Aquest article tracta les diferències clau entre la sobrecàrrega de mètodes i la substitució de Java amb diversos exemples, incloses les paraules clau super i diverses regles.

El llenguatge de programació Java és la millor opció a l’hora de fer-ho . Amb conceptes com classes , , , etc, es fa extremadament fàcil treballar-hi . La facilitat d'accés i la sintaxi fàcil fan que el codi sigui eficient i menys complex. En aquest article, aprendrem sobre la sobrecàrrega i la substitució de mètodes a Java. A continuació es detallen els temes tractats en aquest bloc:



Què és la sobrecàrrega de mètodes a Java?

La sobrecàrrega del mètode permet que el mètode tingui el mateix nom que difereix en funció dels arguments o dels tipus d'arguments. Es pot relacionar amb el polimorfisme en temps de compilació. A continuació es detallen algunes indicacions que hem de tenir en compte durant la sobrecàrrega de mètodes a Java.



  • No podem sobrecarregar un tipus de retorn.

  • Tot i que podem sobrecarregar , els arguments o els paràmetres d'entrada han de ser diferents.



  • No podem sobrecarregar dos mètodes si només difereixen per una paraula clau estàtica.

  • Igual que altres mètodes estàtics, el mètode main () també es pot sobrecarregar.

sobrecàrrega de mètode: sobrecàrrega i substitució de mètodes a Java Edureka



Vegem un programa senzill per entendre com funciona la sobrecàrrega de mètodes a 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 principal (String args []) {Div ob = new Div () ob.div (10, 2) ob.div (10, 2, 3)}}
 Sortida: maig 4

Al programa anterior, tenim dos mètodes amb el mateix nom però paràmetres diferents. Així funciona el mètode de sobrecàrrega .

__init__ python 3

Per què la sobrecàrrega del mètode?

El principal avantatge d’utilitzar la sobrecàrrega de mètodes a Java és que ens dóna la llibertat de no definir una funció una i altra vegada per fer el mateix. A l'exemple següent, els dos mètodes bàsicament realitzen divisions, de manera que podem tenir mètodes diferents amb el mateix nom però amb paràmetres diferents. També ajuda en el polimorfisme en temps de compilació.

Sobrecàrrega del mètode main ():

A continuació es mostra un exemple per sobrecarregar el mètode main () a Java.

public class Edureka {public static void main (String [] args) {System.out.println ('hola') Edureka.main ('edurekan')} public static void main (String arg1) {System.out.println (' benvinguda '+ arg1) Edureka.main (' benvinguda ',' a edureka ')} public static void main (String arg1, String arg2) {System.out.println (' hola ', + arg1, + arg2)}}
 Sortida: hola benvinguda edurekan hola, benvingut a edureka

Exemples de sobrecàrrega de mètodes

  • Programa per sobrecarregar mètodes estàtics a 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))}}
 Sortida: 100 edureka
  • Programa per sobrecarregar tres mètodes amb el mateix nom.
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 (doble a, doble 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)}}
 Sortida: 40 75 34

Què és el mètode que substitueix a Java?

L’herència a Java implica una relació entre les classes dels pares i els fills. Sempre que les dues classes contenen mètodes amb el mateix nom i arguments o paràmetres, és cert que un dels mètodes anul·larà l'altre mètode durant l'execució. El mètode que s'executarà depèn de l'objecte.

Si l'objecte de classe fill crida al mètode, el mètode de classe secundària substituirà el mètode de classe pare. En cas contrari, si l'objecte de classe pare crida al mètode, s'executarà el mètode de classe pare.

La substitució del mètode també ajuda a implementar el polimorfisme en temps d'execució a Java. Prenem un exemple senzill per entendre com funciona la substitució de mètodes a 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 ()
 Sortida: aquest és un mètode de classe infantil

Regles per a la substitució de mètodes

  • El accedir a l'edició només pot permetre més accés per al mètode anul·lat.

  • A final El mètode no admet la substitució del mètode.

  • No es pot anul·lar un mètode estàtic.

  • No es poden anul·lar els mètodes privats.

  • El tipus de retorn del mètode de substitució ha de ser el mateix.

  • Podem trucar al mètode de classe pare en el mètode de substitució mitjançant la paraula clau super.

  • A constructor no es pot anul·lar perquè una classe fill i una classe pare no poden tenir el constructor amb el mateix nom.

Exemple de mètode primordial

  • Programa per mostrar la substitució mitjançant la paraula clau super
class Parent {void show () {System.out.println ('mètode de classe principal')} class Child estén Parent {void show () {super.show () System.out.println ('mètode de classe infantil')} públic static void main (String args []) {Parent ob = new Child () ob.show ()}}
 Sortida: mètode de classe pare mètode de classe infantil

Sobrecàrrega vs Sobrescripció: diferència entre sobrecàrrega de mètode i sobrescripció de mètode

A continuació es mostren les diferències clau entre la sobrecàrrega de mètodes i la substitució a Java.

java com utilitzar l'iterador
Sobrecàrrega del mètode Substitució del mètode
  • S'utilitza per augmentar la llegibilitat del programa
  • Proporciona una implementació específica del mètode ja a la classe pare
  • Es realitza dins de la mateixa classe
  • Implica diverses classes
  • Els paràmetres han de ser diferents en cas de sobrecàrrega
  • Els paràmetres han de ser els mateixos en cas de substitució
  • És un exemple de polimorfisme en temps de compilació
  • És un exemple de polimorfisme en temps d'execució
  • El tipus de retorn pot ser diferent, però també heu de canviar els paràmetres.
  • El tipus de retorn ha de ser el mateix en cas de substitució
  • Es poden sobrecarregar els mètodes estàtics
  • La substitució no implica mètodes estàtics.

En aquest bloc, hem analitzat amb detall la sobrecàrrega de mètodes i la substitució de mètodes. Amb la participació de classes, objectes i conceptes com l’herència i el polimorfisme, esdevé força important tenir una idea clara del que significa sobrecarregar o anul·lar mètodes a Java.

El llenguatge de programació Java és un punt àlgid de la programació orientada a objectes i incorpora moltes aplicacions. Amb la demanda i la popularitat, un aspirant a desenvolupador de Java ha de dominar els conceptes fonamentals del llenguatge de programació. Inscriu-te a Edureka’s per iniciar el vostre aprenentatge.

Tens alguna pregunta? Si us plau, mencioneu-ho a la secció de comentaris d'aquest article sobre 'sobrecàrrega de mètode vs mètode de substitució a Java' i us respondrem el més aviat possible.