wpjr2’s Weblog

Artigos e tutoriais úteis

Sobrecarga vs. Sobrescrita

Posted by wpjr2 em abril 20, 2008

O objetivo deste artigo é apresentar as características da cobrecarga e sobrescrita na orientação por objetos em Java. Pelo fatos destes serem alguns dos tipos de polimorfismo existentes na linguagem, eles podem ser falcilmente confundidos e até trocados entre si.

Sobrecarga: criação de várias funções ou métodos com o mesmo nome, porém com parâmetros e tipos de retorno diferentes. A escolha de quais métodos serão usados pela aplicação é definido em tempo de compilação (dynamic/late binding), através dos parâmetros passados e do tipo de retorno esperado pela
classe cliente.

Ex:System.out.println()

Sobrescrita: recurso da linguagem onde uma impleemntação específica é provida pela subclasse de algum método já provido pela superclasse. A implementação da subclasse substitui a implementação da classe pai.
Métodos sobrescritos DEVEM possuir a mesma assinatura (tipo de retorno, nome do método, tipos e quantidade de parâmetros).

Ex:Métodos equals() e toString() que são sobrescritos nas classes filhas.

A covariância, um recurso acrescentado na linguagem a partir da versão 1.5, permite flexibilizar o tipo de retorno do método, retornando por exemplo uma subclasse do tipo de retorno definido na superclasse. Por
exemplo, em um método espera-se retornar um objeto Cão, mas na sobrescrita (subclasse) é possível retornar um objeto do tipo Dálmata.

Todos os métodos de classes em Java são automaticamente virtuais, significando que estes podem ser sobrescritos pelas subclasses desta classe. Para que um método não possa ser sobrescrito, o modificador
“final” deve ser usado no método.

Resumo:
– Sobrecarga: métodos com o mesmo nome, diferentes parãmetros e tipos
de retorno, provendo a mesma operação de formas diferentes
– Sobrescrita: métodos com o mesmo nome, parãmetros e tipos de
retorno, alterando o comportamento do método da classe pai.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: