Sobrecarga vs Substituição
Sobrecarga e substituição são os recursos da maioria das linguagens de programação. Sobrecarga é um recurso que permite a criação de vários métodos com o mesmo nome, na mesma classe, mas diferem entre si em termos do tipo de entrada e do tipo de saída da função. A sobrecarga de método geralmente é associada a linguagens de programação estáticas que impõem verificação de tipo nas chamadas de função. Provavelmente, eles estão relacionados a VB, .Net, C ++, D, Java etc. A substituição é uma habilidade primária usada para programação orientada a objetos e é realizada quando um usuário redefine um método que já foi definido em uma classe existente ou pai. Nesta técnica de programação, os scripts são codificados para executar tarefas específicas, permitindo que um script escrito em uma subclasse inferior ou implemente um método ou conjunto de instruções já definidas em qualquer uma das classes pai ou superior.
Na programação de computadores, a Sobrecarga foi originada de um método com mais de uma definição no mesmo escopo e compartilha o mesmo nome, mas com a assinatura diferente. As implementações do método compartilham o mesmo nome porque elas executam tarefas semelhantes. A sobrecarga também é identificada devido ao seu reconhecimento como um caso de polimorfismo, no qual alguns ou todos os operadores podem ter implementações diferentes, dependentes dos tipos de argumentos especificados. A substituição depende da presença de uma função de classe base para sua aparência. O recurso de idioma Substituição que permite que uma classe filha implemente um método que já é usado por uma de suas superclasses ou classes pai, permite que o método da subclasse atribua o mesmo nome, lista de parâmetros e tipo ou assinatura de retorno que o método substituído usado na superclasse tem.
A sobrecarga é considerada prática, pois permite que os programadores escrevam vários métodos diferentes que possuem o mesmo nome. A sobrecarga pode ter algumas conseqüências para um idioma, porque em tempo de execução, o processador altera o nome de todos os métodos sobrecarregados. É resolvido no momento da compilação. Enquanto substituir é um polimorfismo que é projetado com base no primeiro parâmetro implícito que é resolvido no tempo de execução.
Resumo:
O termo sobrecarga é geralmente associado a linguagens programadas estaticamente e a superação da popularidade na programação orientada a objetos.
Um método em uma classe com o mesmo nome de método com assinatura diferente é designado como método de sobrecarga. Substituindo conhecido como método em uma classe com o mesmo nome de método e os mesmos argumentos / assinatura.
A sobrecarga compartilha um relacionamento uniforme entre os métodos disponíveis na mesma classe, enquanto na substituição, é criado o relacionamento entre um método de superclasse e um método de subclasse.
Sobrecarga permite herança da superclasse.
Na substituição, o método de subclasse substitui a superclasse.
A sobrecarga deve ter assinatura de método diferente, enquanto a substituição deve alocar a mesma assinatura.