Este é um post disponível para assinantes MVPOrientação a Objetos: uma abordagem com Java - Revista easy Java Magazine 13 - Parte 2
Apresenta conceitos mais avançados em relação aos que tratamos na primeira parte. Polimorfismo, por exemplo, é um conceito chave para criarmos aplicações cujo código é mais fácil de ler, manter, e a escalabilidade uma realidade possível. É recom
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Easy Java Magazine 13
Na primeira parte desta série comentamos que a reutilização é uma peça fundamental para o aumento da produtividade e melhoria da qualidade dos produtos de software. Finalizamos o artigo falando do relacionamento É-UM, também chamado de generalização/especialização, e mais comumente de herança. Vimos no artigo Modelagem de Software com UML – Parte 4, publicado na Easy Java Magazine 10, que reuso é o processo de utilizar um módulo – uma classe, por exemplo – várias vezes em uma aplicação ou em aplicações diferentes. Desta forma, podemos afirmar que herança é um conceito que possibilita o reuso. Estudaremos nesta parte da série que, assim como herança, o polimorfismo é outro conceito que dá suporte à reutilização.
No entanto, para que o polimorfismo seja utilizado, é necessário que os métodos definidos nas subclasses tenham exatamente a mesma assinatura dos métodos declarados na superclasse. Esse mecanismo da orientação a objetos é chamado de sobrescrita, ou overriding, e será estudado em seguida.
Após entendermos a sobrescrita, estaremos preparados para iniciar o estudo sobre polimorfismo, que é o tópico final desta parte do curso. Nesta seção aprenderemos a implementar polimorfismo tornando as aplicações mais facilmente extensíveis.
Mas, antes de apresentarmos polimorfismo, outro conceito que precisamos entender é a sobrecarga de métodos, ou overloading. Além da importância que a sobrecarga oferece de tornar os métodos mais flexíveis, é fundamental que fique muito clara a diferença entre sobrescrita e sobrecarga.
Sobrescrita
Se uma classe herda um método de uma superclasse, então este método poderá ser sobrescrito na subclasse. Ou seja, podemos escrever uma nova implementação para um método já implementado na superclasse. A vantagem disso é tornar possível a definição de um comportamento que seja específico de determinada subclasse – ou subtipo.
Para exemplificar este recurso, iniciamos apresentando a classe Empregado na Listagem 1. Na Listagem 2, mostramos um exemplo da classe Gerente que estende a classe Empregado, e sobrescreve o método calculaSalario(). No exemplo dado, a sobrescrita se torna necessária porque os cálculos dos salários de Empregado e do seu subtipo, Gerente, são diferentes.
Listagem 1. Código da classe Empregado.
public
class Empregado {
private int matricula;
private String nome;
private long cpf;
private String cargo;
private double salario;
private double gratificacao;
public Empregado() {
}
public Empregado(int matricula, String nome) {
this.matricula = matricula;
this.nome = nome;"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor



0
0
