Diferença entre sobrescrever e sobrecarregar em C

Índice:

Diferença entre sobrescrever e sobrecarregar em C
Diferença entre sobrescrever e sobrecarregar em C

Vídeo: Diferença entre sobrescrever e sobrecarregar em C

Vídeo: Diferença entre sobrescrever e sobrecarregar em C
Vídeo: OOP Series #003 - Sobrescrita e Sobrecarga 2024, Dezembro
Anonim

Key Difference – Overriding vs Overloading em C

A principal diferença entre sobrescrever e sobrecarregar em C é que a vinculação da chamada de método sobrescrita à sua definição ocorre em tempo de execução, enquanto a vinculação da chamada de método sobrecarregada à sua definição ocorre em tempo de compilação.

C é uma linguagem de programação de uso geral desenvolvida pela Microsoft. A principal vantagem do C é que ele suporta Programação Orientada a Objetos (OOP). Um pilar da POO é o polimorfismo. Dá a um objeto ter múltiplos comportamentos. Existem dois tipos de polimorfismo conhecidos como sobreposição e sobrecarga. Este artigo discute a diferença entre substituição e sobrecarga de método em C.

O que é sobrescrever em C?

Existe um outro conceito importante em POO é a herança. É usar atributos e métodos da classe já existente. Melhora a reutilização do código. A classe já existente é a classe base e a nova classe é conhecida como classe derivada. Na substituição do polimorfismo, deve haver uma classe base e uma classe derivada. A ligação da chamada do método substituído à definição acontece em tempo de execução. Um exemplo é o seguinte.

Diferença entre substituir e sobrecarregar em C
Diferença entre substituir e sobrecarregar em C

Figura 01: Programa C com Overriding

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 Shape. Assim, o método de exibição da classe Shape será executado. Em seguida, a variável de referência aponta para o objeto Rectangle. Assim, o método display da classe Rectangle será executado. Finalmente, a variável de referência aponta para o objeto Triangle. Assim, o método display 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 de método ocorre na mesma classe. A ligação de métodos sobrecarregados à definição acontece em tempo de compilação. Consulte o programa C abaixo.

Diferença chave entre substituir e sobrecarregar em C
Diferença chave entre substituir e sobrecarregar 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 sum. Eles têm diferentes tipos de parâmetros. No programa principal, um objeto de A é criado. A soma (2, 3) invocará o método soma com números inteiros. A soma (5.1, 7.94) invocará o método sum com valores double. Ambos os métodos têm o mesmo nome e um 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 os tipos de parâmetros forem os mesmos, mas o número de parâmetros for diferente.

Qual é a semelhança entre sobrescrever e sobrecarregar em C?

Ambos Overriding e Overloading em C são tipos de polimorfismo

Qual é a diferença entre sobrescrever e sobrecarregar em C?

Sobrecarga 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. Overloading em C é criar vários métodos com o mesmo nome com implementações diferentes.
Parâmetros
Em C Overriding, os métodos têm o mesmo nome, mesmos tipos de parâmetros e um 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 dentro da classe base e da classe derivada. Em C, a sobrecarga ocorre dentro da mesma classe.
Tempo de ligação
A ligação da chamada do método substituído à sua definição acontece em tempo de execução. A ligação da chamada de método sobrecarregada à 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 em tempo de compilação, polimorfismo estático ou ligação inicial.

Resumo – Sobrescrevendo vs Sobrecarregando em C

Overriding e Overloading são dois tipos de polimorfismo. A diferença entre substituir e sobrecarregar em 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 sobrecarregado à sua definição acontece em tempo de compilação.

Recomendado: