Qual é a diferença entre Sobrecarga e Substituição de Método?



Este artigo cobre as principais diferenças entre a sobrecarga e a substituição de métodos em java com vários exemplos, incluindo superpalavra-chave e várias regras.

A linguagem de programação Java é a melhor escolha quando se trata de . Com conceitos como Aulas , , , etc, torna-se extremamente fácil trabalhar com . A facilidade de acesso e a sintaxe fácil tornam o código eficiente e também menos complexo. Neste artigo, aprenderemos sobre sobrecarga e substituição de métodos em Java. A seguir estão os tópicos discutidos neste blog:

O que é sobrecarga de método em Java?

A sobrecarga de método permite que o método tenha o mesmo nome, que difere com base nos argumentos ou nos tipos de argumento. Pode estar relacionado ao polimorfismo em tempo de compilação. A seguir estão algumas dicas que devemos ter em mente ao sobrecarregar métodos em Java.





  • Não podemos sobrecarregar um tipo de retorno.

  • Embora possamos sobrecarregar , os argumentos ou parâmetros de entrada devem ser diferentes.



  • Não podemos sobrecarregar dois métodos se eles diferirem apenas por uma palavra-chave estática.

  • Como outros métodos estáticos, o método main () também pode ser sobrecarregado.

sobrecarga de método - sobrecarga e sobrescrita de método em java- edureka



Vamos dar uma olhada em um programa simples para entender como funciona a sobrecarga de método em 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)}}
 Resultado: 5 4

No programa acima, temos dois métodos com o mesmo nome, mas parâmetros diferentes. É assim que funciona a sobrecarga do método em .

Por que sobrecarga de método?

A principal vantagem de usar a sobrecarga de método em Java é que isso nos dá a liberdade de não definir uma função repetidamente para fazer a mesma coisa. No exemplo abaixo, os dois métodos estão basicamente executando a divisão, portanto, podemos ter métodos diferentes com o mesmo nome, mas com parâmetros diferentes. Também ajuda no polimorfismo em tempo de compilação.

Sobrecarregando o método main ():

A seguir está um exemplo para sobrecarregar o método main () em 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 (' bem-vindo '+ arg1) Edureka.main (' bem-vindo ',' para edureka ')} public static void main (String arg1, String arg2) {System.out.println (' hello ', + arg1, + arg2)}}
 Resultado: ola bem vindo edurekan ola bem vindo a edureka

Exemplos de sobrecarga de método

  • Programa para sobrecarregar métodos estáticos em 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 ( função (1)) System.out.println (função (1,3))}}
 Resultado: 100 edureka
  • Programa para sobrecarregar três métodos com o mesmo 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)}}
 Resultado: 40 75 34

O que é método substituindo em Java?

A herança em java envolve um relacionamento entre as classes pai e filho. Sempre que ambas as classes contêm métodos com o mesmo nome e argumentos ou parâmetros, é certo que um dos métodos substituirá o outro método durante a execução. O método que será executado depende do objeto.

Se o objeto da classe filha chamar o método, o método da classe filha substituirá o método da classe pai. Caso contrário, se o objeto da classe pai chamar o método, o método da classe pai será executado.

A substituição de método também ajuda na implementação do polimorfismo de tempo de execução em java. Vamos dar um exemplo simples para entender como a substituição de método funciona em java.

class Parent {void view () {System.out.println ('este é um método de classe pai)}} class Child extends Parent {void view () {System.out.println (' este é um método de classe filho)}} public static void main (String args []) {Parent ob = new Parent () ob.view () Parent ob1 = new Child () ob1.view ()
 Resultado: este é um método de classe filho

Regras para substituição de métodos

  • o acessar editar só pode permitir mais acesso para o método substituído.

  • PARA final método não suporta a substituição de método.

  • Um método estático não pode ser substituído.

    c ++ usando namespace
  • Os métodos privados não podem ser substituídos.

  • O tipo de retorno do método de substituição deve ser o mesmo.

  • Podemos chamar o método da classe pai no método de substituição usando a palavra-chave super.

  • PARA construtor não pode ser substituído porque uma classe filha e uma classe pai não podem ter o construtor com o mesmo nome.

Exemplo de substituição de método

  • Programa para mostrar a substituição usando superpalavra-chave
class Parent {void show () {System.out.println ('método de classe pai')} class Child estende Parent {void show () {super.show () System.out.println ('método de classe filho')} public static void main (String args []) {Parent ob = new Child () ob.show ()}}
 Resultado: método de classe pai método de classe filho

Sobrecarga vs Substituição: Diferença entre Sobrecarga do Método e Substituição do Método

A seguir estão as principais diferenças entre sobrecarga e substituição de método em Java.

Sobrecarga de método Substituição de método
  • É usado para aumentar a legibilidade do programa
  • Fornece uma implementação específica do método já na classe pai
  • É realizado na mesma classe
  • Envolve várias classes
  • Os parâmetros devem ser diferentes em caso de sobrecarga
  • Os parâmetros devem ser os mesmos em caso de substituição
  • É um exemplo de polimorfismo em tempo de compilação
  • É um exemplo de polimorfismo de tempo de execução
  • O tipo de retorno pode ser diferente, mas você deve alterar os parâmetros também.
  • O tipo de retorno deve ser o mesmo na substituição
  • Métodos estáticos podem ser sobrecarregados
  • A substituição não envolve métodos estáticos.

Neste blog, discutimos a sobrecarga e a substituição de métodos em detalhes. Com o envolvimento de classes, objetos e conceitos como herança e polimorfismo, torna-se bastante importante ter uma ideia clara do que significa sobrecarregar ou substituir métodos em java.

A linguagem de programação Java é o ápice da programação orientada a objetos e incorpora muitos aplicativos. Com a demanda e a popularidade, um aspirante a desenvolvedor Java deve ser proficiente nos conceitos fundamentais da linguagem de programação. Inscreva-se no Edureka's para iniciar seu aprendizado.

Tem alguma questão para nós? mencione isso na seção de comentários deste artigo sobre “sobrecarga de método vs sobrescrita de método em java” e entraremos em contato com você o mais breve possível.