Recomendado, 2024

Escolha Do Editor

Diferença entre o método de sobrecarga e substituição

Sobrecarga de método
A sobrecarga de método, também conhecida como sobrecarga de função ou polimorfismo de tempo de compilação, é um conceito de ter dois ou mais métodos com o mesmo nome, mas assinatura diferente no mesmo escopo. Existem muitas linguagens de programação que suportam este recurso: Ada, C ++, C #, D e Java.

Exemplo de Sobrecarga de Método em C #

classe OverloadShapes {float Polygon (raio int, float pi) {float circleArea = pi * raio * raio; } int Polígono (int length, int breadth) {int retânguloArea = comprimento * largura; } int Polygon (lado int) {int squareArea = lado * lado; }}
1 2 3 4 5 6 7 8 9 10 11 12 13 14classe OverloadShapes {float Polygon (raio int, float pi) {float circleArea = pi * raio * raio; } int Polígono (int length, int breadth) {int retânguloArea = comprimento * largura; } int Polygon (lado int) {int squareArea = lado * lado; }}

Como mostrado no exemplo acima, o método 'Polígono' é sobrecarregado 3 vezes com assinatura de método diferente, isto é, o tipo ou o número de parâmetros são diferentes.

Método de substituição
A substituição de métodos, também conhecida como substituição de função ou polimorfismo de tempo de execução, é um recurso OOP que permite que uma classe filha forneça sua própria implementação ao método definido na classe pai. A implementação na classe filha substitui a definição do método na classe base, desde que o método na classe filha tenha o mesmo nome, assinatura e tipo de retorno.

Exemplo de método substituindo em c #

classe Source1 {public void draw () {Console.Writeline ("Eu estou na classe Source1"); }} classe Source2 estende Source1 {public void draw () {Console.Writeline ("Eu estou na classe Source2"); }}
1 2 3 4 5 6 7 8 9 10classe Source1 {public void draw () {Console. Writeline ("Eu estou na classe Source1"); }} classe Source2 estende Source1 {public void draw () {Console. Writeline ("Eu estou na classe Source2"); }}

Aqui, o método de desenho na classe Source2 substitui o método de desenho definido na classe Source1.

Diferença entre Sobrecarga de Método e Substituição de Método

  1. No Método, os métodos de sobrecarga devem ter uma assinatura diferente. No método, substituir métodos deve ter a mesma assinatura.
  2. Função Sobrecarga é “adicionar” ou “estender” mais ao comportamento do método. A função de substituição é mudar completamente “ou redefinir” o comportamento de um método.
  3. Sobrecarga de método é usada para alcançar polimorfismo de tempo de compilação; A substituição do método é usada para obter o polimorfismo em tempo de execução.
  4. No compilador de sobrecarga método / função sabe qual objeto atribuído a qual classe no momento da compilação, mas no método que substitui essa informação não é conhecido até o tempo de execução.
  5. Função A sobrecarga ocorre na mesma classe, enquanto que a sobreposição ocorre em uma classe derivada de uma classe base.
Top