Diferença Entre Anular E Sobrecarregar Em C

Índice:

Diferença Entre Anular E Sobrecarregar Em C
Diferença Entre Anular E Sobrecarregar Em C

Vídeo: Diferença Entre Anular E Sobrecarregar Em C

Vídeo: Diferença Entre Anular E Sobrecarregar Em C
Vídeo: Juventude Pacense - C Infante Sagres II Divisão Norte 2024, Abril
Anonim

Diferença chave - substituição vs. sobrecarga em C #

A principal diferença entre substituir e sobrecarregar em C # é que a ligação da chamada de método substituída à sua definição acontece em tempo de execução, enquanto a ligação da chamada de método sobrecarregada à sua definição acontece em tempo de compilação.

C # é uma linguagem de programação de propósito geral desenvolvida pela Microsoft. A principal vantagem do C # é que ele oferece suporte à Programação Orientada a Objetos (OOP). Um dos pilares da OOP é o polimorfismo. Isso dá a um objeto vários comportamentos. Existem dois tipos de polimorfismo conhecidos como anulação e sobrecarga. Este artigo discute a diferença entre substituição de método e sobrecarga em C #.

CONTEÚDO

1. Visão geral e diferença principal

2. O que é sobreposição em C #

3. O que é sobreposição em C #

4. Semelhanças entre sobreposição e sobrecarga em C #

5. Comparação lado a lado - sobreposição vs. sobrecarga em C # em formato tabular

6. Resumo

O que é substituição em C #?

Existe um outro conceito importante em OOP: herança. É usar atributos e métodos da classe já existente. Ele melhora a capacidade de reutilização do código. A classe já existente é a classe base e a nova classe é conhecida como classe derivada. Ao substituir o polimorfismo, deve haver uma classe base e uma classe derivada. A vinculação da chamada do método substituído à definição ocorre no tempo de execução. Um exemplo é o seguinte.

Diferença entre substituição e sobrecarga em C #
Diferença entre substituição e sobrecarga em C #

Figura 01: Programa C # com substituição

De acordo com o programa acima, a classe Shape é a classe base e contém o método de exibição. As classes Rectangle e Triangle são classes derivadas. Essas classes derivadas também têm a mesma exibição de método com suas próprias implementações.

Primeiro, a variável de referência obj é criada. Ele aponta para o objeto Forma. Portanto, o método de exibição da classe Shape será executado. Em seguida, a variável de referência aponta para o objeto Retângulo. Portanto, o método de exibição da classe Rectangle será executado. Finalmente, a variável de referência aponta para o objeto Triangle. Portanto, o método de exibição da classe Triangle será executado. O método de exibição da classe base é substituído pelos métodos de exibição das classes derivadas.

O método a ser executado é decidido em tempo de execução. A classe Shape é escrita com a palavra-chave 'virtual'. As classes Rectangle e Triangle são escritas com a palavra-chave 'override'. Se essas palavras-chave não forem usadas, a saída imprimirá o conteúdo do método de exibição da classe Shape para todos.

O que é sobrecarga em C #?

Na sobrecarga, vários métodos têm o mesmo nome, mas com parâmetros diferentes. Os parâmetros podem ser de diferentes tipos. Os métodos também podem ter um número diferente de parâmetros. A sobrecarga do método ocorre na mesma classe. A vinculação de métodos sobrecarregados à definição acontece em tempo de compilação. Consulte o programa C # abaixo.

Diferença chave entre substituição e sobrecarga em C #
Diferença chave entre substituição e sobrecarga em C #

Figura 02: Programa C # com sobrecarga

De acordo com o programa acima, a classe A possui dois métodos com o mesmo nome chamados soma. Eles têm diferentes tipos de parâmetros. No programa principal, um objeto de A é criado. O sum (2,3) invocará o método sum com inteiros. A soma (5.1, 7.94) irá invocar o método sum com valores duplos. Ambos os métodos têm o mesmo nome e o mesmo número de parâmetros. Mas os tipos de parâmetros são diferentes. O método necessário é chamado de acordo. A sobrecarga também pode ocorrer se os nomes dos métodos e tipos de parâmetros forem iguais, mas o número de parâmetros for diferente.

Qual é a semelhança entre substituir e sobrecarregar em C #?

Tanto a substituição quanto a sobrecarga em C # são tipos de polimorfismo

Qual é a diferença entre substituir e sobrecarregar em C #?

Artigo Diff meio antes da tabela

Substituição vs. sobrecarga em C #

Substituir em C # é fornecer uma implementação específica em um método de classe derivada para um método já existente na classe base. Sobrecarregar em C # é criar vários métodos com o mesmo nome com diferentes implementações.
Parâmetros
Em C # Overriding, os métodos têm o mesmo nome, os mesmos tipos de parâmetro e o mesmo número de parâmetros. Em C # Overloading, os métodos têm o mesmo nome, mas um número diferente de parâmetros ou um tipo diferente de parâmetros.
Ocorrência
Em C #, a substituição ocorre na classe base e na classe derivada. Em C #, a sobrecarga ocorre dentro da mesma classe.
Tempo de vinculação
A vinculação da chamada do método substituído à sua definição ocorre no tempo de execução. A vinculação da chamada do método sobrecarregado à sua definição acontece em tempo de compilação.
Sinônimos
A substituição é chamada de polimorfismo de tempo de execução, polimorfismo dinâmico ou ligação tardia. A sobrecarga é chamada de polimorfismo de tempo de compilação, polimorfismo estático ou ligação inicial.

Resumo - Substituição vs. Sobrecarga em C #

Overriding e Overloading são dois tipos de polimorfismo. A diferença entre substituir e sobrecarregar no C # é que a ligação da chamada do método substituído à sua definição acontece em tempo de execução, enquanto a ligação da chamada do método sobrecarregada à sua definição acontece no tempo de compilação.

Recomendado: