Diferença entre Sobrecarga e Substituição em Java

Diferença chave : Sobrecarga significa ter dois métodos da mesma classe com o mesmo nome e com diferentes tipos de parâmetros, enquanto que a substituição significa ter dois métodos diferentes na mesma classe com os mesmos tipos de parâmetros, mas com diferentes implementações.

Os métodos que sobrescrevem e sobrecarregam são dois conceitos ou técnicas usados ​​em linguagens de programação java. Ambos os conceitos permitem que o programador forneça diferentes implementações para métodos com o mesmo nome. Este artigo diferencia entre os dois conceitos de programação.

A sobrecarga de função ou sobrecarga de método permite criar vários métodos com o mesmo nome, na mesma classe, mas diferentes uns dos outros na entrada e no tipo de saída da função. É simplesmente definido como a capacidade de uma função para executar tarefas diferentes.

Na sobrecarga, as implementações do método compartilham o mesmo nome porque executam tarefas semelhantes. Além disso, a sobrecarga é considerada de natureza polimórfica. As funções que possuem diferentes implementações dependem de seus tipos de argumentos especificados. Geralmente é associado a linguagens de programação estáticas que impõem a verificação de tipos em chamadas de função. Também é considerado prático, pois permite ao programador escrever vários métodos diferentes na mesma classe. No entanto, ao sobrecarregar o processador de tempo de execução, o nome de todos os métodos sobrecarregados é alterado, o que pode ser um problema.

A substituição de métodos, na programação orientada a objetos, é um recurso que permite que uma subclasse ou classe filha forneça uma implementação específica de um método que já é fornecido por uma de suas superclasses ou classes principais. A implementação na subclasse substitui ou substitui a implementação na classe pai fornecendo um método com o mesmo nome, mesmos parâmetros ou assinatura e o mesmo tipo de retorno que o método na classe pai.

No método de substituição, as funções são codificadas para realizar tarefas específicas em um programa. Substituir depende da presença de uma função de classe base para sua aparência. Aqui, a função executada é determinada pelo objeto que é usado para invocá-la, ou seja, se um objeto de uma classe pai for usado para invocar o método, a função na classe pai será executada. Substituir é polimorfo na natureza; Ele ajuda a projetar programas baseados no primeiro parâmetro implícito, que pode ser resolvido em tempo de execução. Existem algumas linguagens em java que permitem que um programador evite que um método seja sobrescrito.

Comparação entre Sobrecarregar e Substituir:

Sobrecarga

Substituindo

Definição

Isso significa ter métodos da mesma classe com o mesmo nome, mas cada método tem parâmetros diferentes ou tem os mesmos parâmetros com tipos e ordens diferentes.

Isso significa ter uma subclasse com os mesmos métodos sob o mesmo nome e exatamente o mesmo tipo de parâmetros e o mesmo tipo de retorno que uma superclasse.

Significado

Isso significa que mais de um método compartilha o mesmo nome na mesma classe, mas possui uma assinatura diferente.

Isso significa que o método da classe base é redefinido na classe derivada com a mesma assinatura.

Comportamento

Adiciona ou estende ao comportamento dos métodos.

Altera o comportamento existente de um método.

Polimorfismo

É um polimorfismo no tempo de compilação.

É um polimorfismo de tempo de execução.

Método estático

O método estático pode ser sobrecarregado.

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

Ligação

Vínculo estático.

Ligação dinâmica.

Herança

Pode ou não exigir herança.

Sempre requer herança.

Associação

Geralmente é associado a linguagens de programa estáticas.

Geralmente é associado a programas orientados a objetos.

Assinatura

Métodos têm assinatura diferente.

Os métodos devem ter a mesma assinatura.

Rapidez

É mais rápido que ignorar.

É lento em comparação com a sobrecarga.

Classes

Não requer mais de uma classe para sobrecarga.

Requer pelo menos duas classes para sobrecarga.

Nível

Métodos podem ter qualquer nível de acesso.

Os métodos possuem um nível de acesso igual ou amplo.

Exemplo

Class Adicionar

{

soma int (int a, int b)

{

return a + b;

}

int sum (int a)

{

return a + 10;

}

}

Classe A // Super Classe

{

void display (int num)

{

print num;

}

}

// A classe B herda a classe A

Classe B // Subclasse

{

void display (int num)

{

print num;

}

}

Recomendado

Artigos Relacionados

  • diferença entre: Diferença entre Harry Potter e o Senhor dos Anéis

    Diferença entre Harry Potter e o Senhor dos Anéis

    Diferença chave: Harry Potter é escrito por JK Rowling e publicado pela primeira vez em 1994. Lord of the Rings é mais antigo e foi publicado em 1954 por JRR Tolkien. Além disso, Harry Potter tem sete livros em sua série, enquanto o Senhor dos Anéis tem apenas três. Eles também têm enredos e histórias diferentes. Harry Po
  • diferença entre: Diferença entre o cisto e a fervura

    Diferença entre o cisto e a fervura

    Um cisto e uma fervura são duas condições comuns da pele que ocorrem entre as pessoas. Um cisto é uma cápsula fechada ou uma estrutura semelhante a uma bolsa. É tipicamente preenchido com material líquido, semi-sólido ou gasoso. A fervura, por outro lado, é uma infecção do folículo piloso. Uma fervur
  • diferença entre: Diferença entre ansiedade e ataques de pânico

    Diferença entre ansiedade e ataques de pânico

    Diferença chave: A ansiedade é uma resposta a um estressor. A ansiedade é um sentimento de medo, desconforto e preocupação. Pode estar enraizada em qualquer evento que faça alguém se sentir frustrado, irritado ou nervoso. Ataque de pânico é uma condição em que uma pessoa experimenta um súbito aparecimento de medo, nervosismo e / ou apreensão. É conhecido
  • diferença entre: Diferença entre DHTML e HTML5

    Diferença entre DHTML e HTML5

    Diferença chave: DHTML é essencialmente HTML dinâmico. É uma nova maneira de ver e controlar os códigos e comandos HTML padrão. DHTML é uma coleção de tecnologias que são usadas para criar sites interativos e animados. HTML5 é a quinta revisão do padrão HTML. HTML significa HyperText Markup Language. É uma lingu
  • diferença entre: Diferença entre o Dell Latitude 10 Windows Tablet e o Sony Xperia Z Tab

    Diferença entre o Dell Latitude 10 Windows Tablet e o Sony Xperia Z Tab

    Diferença chave: o tablet Latitude 10 é bastante fino e leve com 658 gramas. Os dispositivos vêm com uma tela de toque capacitiva LCD Wide View Angle de 10, 1 polegadas IPS (1366 X 768) e são alimentados por um processador Intel Atom Z2760 de 1, 8 GHz. A Sony anunciou recentemente sua renovada linha de smartphones e tablets. Ju
  • diferença entre: Diferença entre DSP e Microprocessador

    Diferença entre DSP e Microprocessador

    Diferença chave: Um microprocessador incorpora as funções da unidade de processamento central (CPU) de um computador em um ou poucos circuitos integrados (IC). A finalidade de um microprocessador é aceitar dados digitais como entrada, processá-los conforme as instruções e fornecer a saída. O processador DSP, por outro lado, é um tipo particular de microprocessador. DSP sig
  • diferença entre: Diferença entre o Samsung Galaxy Note 3 e o Note 3 Neo

    Diferença entre o Samsung Galaxy Note 3 e o Note 3 Neo

    Diferença chave: o Galaxy Note 3 vem com uma tela Super AMOLED de 5.7 polegadas e 1080p. O Samsung Galaxy Note 3 Neo é uma versão de preço mais baixo do Note 3 e vem com um display Super AMOLED de 5, 5 polegadas ligeiramente menor. Os ecrãs grandes tornaram-se uma tendência recente, com muitas pessoas a tornarem-se grandes ou a regressarem a casa - na maior parte das vezes, estão a tornar-se grandes. Telas
  • diferença entre: Diferença entre Sony Xperia P e Alcatel One Touch Idol

    Diferença entre Sony Xperia P e Alcatel One Touch Idol

    Diferença chave: o Sony Xperia P possui um ecrã táctil TFT de 4 polegadas que permite capacidades até 4 toques. A tela é resistente a riscos e tem um revestimento à prova de quebra. A tela sensível ao toque fornece aproximadamente 275 ppi de densidade de pixels, juntamente com a tecnologia WhiteMagic, que adiciona um pixel branco extra com o já presente vermelho, azul e verde. O Alca
  • diferença entre: Diferença entre ter e onde cláusula

    Diferença entre ter e onde cláusula

    Diferença chave: Ambos, 'Tendo' e 'Onde' são cláusulas que podem ser utilizadas no SQL. A cláusula 'Where' é aplicada primeiro às linhas individuais nas tabelas, usando as quais as linhas que atendem às condições na cláusula são agrupadas. A cláusula 'Having' é então aplicada às linhas no conjunto de resultados. Os grupos que

Escolha Do Editor

Diferença entre prefixo e sufixo

Diferença chave: O prefixo é uma parte de uma palavra que é adicionada a outra palavra, para alterar o significado dela. Como prefixo, um sufixo é também uma palavra que é adicionada a outra palavra, para mudar o significado dela. A principal diferença entre os dois é que, enquanto um prefixo é adicionado à frente da palavra, o sufixo é adicionado ao final do mesmo. A linguag