Diferença entre sobrecarga e substituição em Java

Diferença de chave - Sobrecarga vs Substituindo em Java
 

A Programação Orientada a Objetos (OOP) é ​​um paradigma importante no desenvolvimento de software. É uma metodologia para projetar um programa usando classes e objetos. Uma classe é um plano. Ele descreve o que deve conter no objeto. Ele define as propriedades ou atributos e os métodos nos quais o objeto deve consistir. Portanto, um objeto é uma instância de uma classe. Esses objetos se comunicam com outros objetos. Um conceito importante de POO é o polimorfismo. É a capacidade de um objeto se comportar de várias maneiras. O polimorfismo é categorizado em duas seções que são sobrecarregadas e anuladas. Este artigo discute a diferença entre esses dois em Java. o diferença chave entre sobrecarga e substituição em Java é que o Sobrecarga é a capacidade de criar vários métodos com o mesmo nome com diferentes implementações e Substituir é fornecer uma implementação para um método de subclasse que já existe na superclasse.

CONTEÚDO

1. Visão geral e principais diferenças
2. O que está sobrecarregando em Java
3. O que está substituindo em Java
4. Semelhanças entre sobrecarga e substituição em Java
5. Comparação lado a lado - sobrecarga vs substituição em Java em forma de tabela
6. Resumo

O que é sobrecarga em Java?

Sobrecarregar é a capacidade de criar vários métodos com o mesmo nome com diferentes implementações. Consulte o código Java abaixo.

Figura 01: Programa Java que explica a sobrecarga com um número diferente de argumentos

De acordo com o programa acima, a classe A contém dois métodos com o mesmo nome. O primeiro método de soma possui dois parâmetros. O segundo método de soma possui três parâmetros. Ao criar um objeto do tipo A e chamar sum (2,3), ele chamará o método sum com dois parâmetros que são sum (int a, int b) e retornam 5. Ao criar um objeto do tipo A e chamar sum (2) 3,4), ele chamará o outro método de soma com três parâmetros, que é a soma (int a, int b, int c) e retorna 9.

O nome do método é o mesmo, mas o número de parâmetros é diferente. Pode-se observar que o mesmo objeto está se comportando de maneira diferente. Esse conceito é conhecido como sobrecarga. É também referido como Ligação estática ou Compila Polimorfismo de Tempo.

Também pode ser sobrecarregado com diferentes tipos de dados. Consulte o código Java abaixo.

Figura 02: Programa Java que explica a sobrecarga com diferentes números de argumentos

De acordo com o programa acima, a classe A consiste em dois métodos com o mesmo nome. O método sum (int a, int b) recebe dois valores inteiros. A soma (duplo a duplo b) recebe dois valores duplos. Ao criar o objeto do tipo A e chamar sum (2,3), ele chamará sum (int a, int b) e retornará o valor 5. Ao chamar sum (3,4, 5.6), ele chamará sum (double a double b) e retorne o valor 9.0. Neste exemplo, os métodos têm o mesmo nome, mas um tipo diferente de variável. Isso também está sobrecarregando.

O que é substituição em Java?

Em Java, é possível construir subclasses com classes já existentes. Em vez de criar a nova classe desde o início, é possível usar as propriedades e métodos da classe já existente. A classe existente é a superclasse e a classe derivada é a subclasse. Quando a subclasse fornece uma implementação para um método, que já está na superclasse, ela é conhecida como substituição. Consulte o programa Java abaixo.

Figura 03: Programa Java para substituir

De acordo com o programa acima, a classe A está exibindo um método (). A classe B é estendida da classe A, portanto, as propriedades e os métodos da classe A são acessíveis pela classe B. A classe B possui o método display () com uma implementação específica. Ao criar um objeto do tipo A e chamar o método de exibição, ele fornecerá a saída B. Embora a classe A tenha um método de exibição, ela é substituída pelo método de exibição da classe B. A subclasse está implementando um método já existente na superclasse.

Esse conceito é um tipo de polimorfismo e conhecido como substituição. Também é chamado como Ligação tardia, Ligação dinâmica, Polimorfismo de tempo de execução.

Quais são as semelhanças entre sobrecarga e substituição em Java?

  • Ambos são tipos de polimorfismo.
  • Na sobrecarga e substituição, os métodos têm o mesmo nome.

Qual é a diferença entre sobrecarga e substituição em Java?

Sobrecarga vs Substituição em Java

Sobrecarregar em Java é a capacidade de criar vários métodos com o mesmo nome com diferentes implementações. A substituição em Java está fornecendo uma implementação específica no método da subclasse para um método já existente na superclasse.
 Parâmetros
Na sobrecarga, os métodos têm o mesmo nome, mas um número diferente de parâmetros ou um tipo diferente de parâmetros. Na substituição, os métodos têm o mesmo nome e os parâmetros devem ser os mesmos.
Temas
Sobrecarga ocorre dentro da classe. A substituição ocorre nas duas classes que têm um relacionamento de herança.
 Sinônimos
A sobrecarga é chamada de polimorfismo de tempo compilado. A substituição é chamada polimorfismo em tempo de execução.

Resumo - Sobrecarga vs Substituindo em Java

Polimorfismo é um conceito importante na Programação Orientada a Objetos. Ele fornece a capacidade de um objeto se comportar de várias maneiras. Isso pode ser uma sobrecarga ou substituição. Sobrecarregar é o polimorfismo em tempo de compilação e substituir é o polimorfismo em tempo de execução. Eles são úteis no desenvolvimento de aplicativos de software. A diferença entre substituir e sobrecarregar é que Sobrecarregar é a capacidade de criar vários métodos com o mesmo nome com diferentes implementações e Overriding fornece uma implementação específica no método da subclasse para um método já existente na superclasse. É possível implementar sobrecarga e substituição em Java.

Faça o download do PDF Overloading vs Overriding in Java

Você pode fazer o download da versão em PDF deste artigo e usá-la para fins offline, conforme nota de citação. Faça o download da versão em PDF aqui Diferença entre sobrecarga e substituição em Java

Referência:

1.tutorialspoint.com. "Substituição de Java". O ponto. Disponivel aqui 
2. “Sobrecarga de método em Java - Javatpoint.” Disponivel aqui
3. “Substituição de método em Java - javatpoint.” Disponivel aqui