Diferença entre sobrecarga e substituição em Java

Índice:

Diferença entre sobrecarga e substituição em Java
Diferença entre sobrecarga e substituição em Java

Vídeo: Diferença entre sobrecarga e substituição em Java

Vídeo: Diferença entre sobrecarga e substituição em Java
Vídeo: Difference between overriding and overloading? - Cracking the Java Coding Interview 2024, Novembro
Anonim

Key Difference – Overloading vs Overriding em Java

Programação Orientada a Objetos (POO) é um paradigma importante no desenvolvimento de software. É uma metodologia para projetar um programa usando classes e objetos. Uma classe é um projeto. Descreve o que deve conter no objeto. Ele define as propriedades ou atributos e os métodos nos quais o objeto deve consistir. Portanto, um objeto é uma instância de uma classe. Esses objetos se comunicam com outros objetos. Um conceito importante de POO é o polimorfismo. É a capacidade de um objeto se comportar de várias maneiras. O polimorfismo é categorizado em duas seções que estão sobrecarregando e substituindo. Este artigo discute a diferença entre esses dois em Java. A principal diferença entre sobrecarga e substituição em Java é que Overloading é a capacidade de criar vários métodos com o mesmo nome com diferentes implementações e Overriding é fornecer uma implementação para um método de subclasse que já existe na superclasse.

O que é sobrecarga em Java?

Overloading é a capacidade de criar vários métodos com o mesmo nome com diferentes implementações. Consulte o código Java abaixo.

Diferença entre sobrecarga e substituição em Java
Diferença entre sobrecarga e substituição em Java
Diferença entre sobrecarga e substituição em Java
Diferença entre sobrecarga e substituição em Java

Figura 01: Programa Java que explica Sobrecarga com diferentes números de argumentos

De acordo com o programa acima, a classe A contém dois métodos com o mesmo nome. O primeiro método de soma tem dois parâmetros. O segundo método de soma tem três parâmetros. Ao criar um objeto do tipo A e chamar sum(2, 3), ele chamará o método sum com dois parâmetros que são sum(int a, int b) e retorna 5. Ao criar um objeto do tipo A e chamar sum(2, 3, 4), ele chamará o outro método de soma com três parâmetros que é a soma(int a, int b, int c) e retornará 9.

O nome do método é o mesmo, mas o número de parâmetros é diferente. Pode-se observar que o mesmo objeto está se comportando de forma diferente. Esse conceito é conhecido como sobrecarga. Também é conhecido como Static Binding ou Compiles Time Polymorphism.

Também pode ser sobrecarregado com diferentes tipos de dados. Consulte o código Java abaixo.

Diferença entre Overloading e Overriding em Java_Figura 02
Diferença entre Overloading e Overriding em Java_Figura 02
Diferença entre Overloading e Overriding em Java_Figura 02
Diferença entre Overloading e Overriding em Java_Figura 02

Figura 02: Programa Java que explica Sobrecarga com diferentes números de argumentos

De acordo com o programa acima, a classe A consiste em dois métodos com o mesmo nome. O método sum(int a, int b) recebe dois valores inteiros. A soma(double a double b) recebe dois valores double. Ao criar o objeto do tipo A e chamar sum(2, 3), ele chamará sum(int a, int b) e retornará o valor 5. Ao chamar sum(3.4, 5.6), ele chamará sum(double a double b) e retorne o valor 9,0. Neste exemplo, os métodos têm o mesmo nome, mas um tipo diferente de variáveis. Isso também está sobrecarregando.

O que é Overriding em Java?

Em Java, é possível construir subclasses com classes já existentes. Em vez de criar a nova classe desde o início, é possível usar as propriedades e métodos da classe já existente. A classe existente é a superclasse e a classe derivada é a subclasse. Quando a subclasse fornece uma implementação para um método, que já está na superclasse, isso é conhecido como substituição. Consulte o programa Java abaixo.

Diferença chave entre sobrecarga e substituição em Java
Diferença chave entre sobrecarga e substituição em Java
Diferença chave entre sobrecarga e substituição em Java
Diferença chave entre sobrecarga e substituição em Java

Figura 03: Programa Java para sobrescrever

De acordo com o programa acima, a Classe A possui um método display(). A classe B está se estendendo da classe A, então as propriedades e métodos da classe A são acessíveis pela classe B. A classe B possui o método display() com uma implementação específica. Ao criar um objeto do tipo A e chamar o método de exibição, ele fornecerá a saída B. Mesmo que a classe A tenha um método de exibição, ele é substituído pelo método de exibição da classe B. A subclasse está implementando um método já existente na superclasse.

Este conceito é um tipo de polimorfismo e conhecido como sobreposição. Também é chamado de Late Binding, Dynamic Binding, Runtime Polymorphism.

Quais são as semelhanças entre sobrecarga e substituição em Java?

  • Ambos são tipos de polimorfismo.
  • Na sobrecarga e na sobreposição, os métodos têm o mesmo nome.

Qual é a diferença entre sobrecarga e substituição em Java?

Overloading vs Overriding em Java

A sobrecarga em Java é a capacidade de criar vários métodos com o mesmo nome com diferentes implementações. Substituir em Java é fornecer uma implementação específica no método de subclasse para um método já existente na superclasse.
Parâmetros
Na sobrecarga, os métodos têm o mesmo nome, mas um número diferente de parâmetros ou um tipo diferente de parâmetros. Na substituição, os métodos têm o mesmo nome e os parâmetros devem ser os mesmos.
Temas
A sobrecarga ocorre dentro da classe. A substituição ocorre dentro das duas classes que possuem um relacionamento de herança.
Sinônimos
A sobrecarga é chamada de polimorfismo de tempo compilado. A substituição é chamada de polimorfismo de tempo de execução.

Resumo – Sobrecarga vs Sobreposição em Java

Polimorfismo é um conceito importante em Programação Orientada a Objetos. Ele fornece a capacidade de um objeto se comportar de várias maneiras. Isso pode ser de sobrecarga ou de sobreposição. A sobrecarga é o polimorfismo de tempo de compilação e a substituição é o polimorfismo de tempo de execução. Eles são úteis no desenvolvimento de aplicativos de software. A diferença entre sobrescrever e sobrecarregar é que Overloading é a capacidade de criar vários métodos de mesmo nome com diferentes implementações e Overriding é fornecer uma implementação específica no método de subclasse para um método já existente na superclasse. É possível implementar tanto a sobrecarga quanto a substituição em Java.

Baixe o PDF Sobrecarga vs Sobreposição em Java

Você pode baixar a versão em PDF deste artigo e usá-lo para fins offline conforme nota de citação. Faça o download da versão em PDF aqui Diferença entre sobrecarga e substituição em Java

Recomendado: