Programação
 › Algoritmo  › C/C++  › Java
Web
 › HTML/XHTML  › JavaScript  › PHP
Sistema Operacional
 › Comandos de DOS  › Windows  › Linux  › Mac/BSD
Office
 › Word / Writer  › Excel / Calc
Áreas do Site
 › Download  › Fórum  › Blog
Recomendamos
Computadores e Informática em Lisboa
TI Expert » Programação » Java » Polimorfismo

Polimorfismo

Polimorfismo, que vem do grego "muitas formas". É o termo definido em linguagens orientadas a objeto - como o Java - para a possibilidade de se usar o mesmo elemento de forma diferente.

Especificamente em Java, polimorfismo se encontra no fato de podemos modificar totalmente o código de um método herdado de uma classe diferente, ou seja, sobrescrevemos o método da classe pai.

Portanto, polimorfismo está intimamente ligado a herança de classes.

Um pequeno exemplo para simplificar essa característica segue abaixo:

  1. Classe 1 possui 2 métodos: métodoA() e métodoB().
  2. Classe 2 herda a classe 1.
  3. Classe 2 reescreve todo o métodoA() que pertence a classe 1.

Levando isso a um patamar mais prático.

Sabemos que toda classe em Java herda implicitamente a classe Object. A classe Object possui alguns métodos, dentre eles o método toString().

O método toString() original, descreve qual instância de objeto está sendo utilizada. Resumidamente, ele cria um texto com o nome da classe mais um código hexadecimal que cada instância possui diferente de outra, chamado hash code (é como um RG daquela instância).

Então, se tivéssemos a classe TV dentro do pacote tiexpert e usássemos o comando: System.out.println (tv1.toString()). O que apareceria no console seria algo como: tiexpert.TV@c17124.

Então o que faremos para melhorar será usar o polimorfismo para sobrescrever o método toString(), colocando o texto da forma que desejarmos.

package tiexpert;

public class TV {
    private String marca;
    private String modelo;
    private int tamanho;
    private int canal;
    private int volume;
    private boolean ligada;

    public TV(String marca, String modelo, int tamanho) {
        this.marca = marca;
        this.modelo = modelo;
        this.tamanho = tamanho;
        this.canal = 1;
        this.volume = 0;
        this.ligada = false;
    }

    // métodos getters e setters

    public String toString() {
		return "TV" + 
            "\nMarca: " + this.marca +
            "\nModelo: " + this.modelo +
            "\nTamanho: " + this.tamanho;
	}

    public static void main(String args[]) {
        TV tv1 = new TV("Marca1", "SDX-22", 29);
        System.out.println(tv1.toString());
    }
}

Agora, o resultado da linha System.out.println (tv1.toString()) não será mais:

tiexpert.TV@c17124

Agora, será:

TV
Marca: Marca1
Modelo: SDX-22
Tamanho: 29

É possível que dependendo do seu JRE e compilador seja necessário o uso da annotation @override antes de sobrescrever o método toString();

Creative Commons License
Autor: Denys William Xavier
Este artigo está sob Licença Creative Commons.

Faça o download da versão em PDF Indique nosso site Gostou?
Indique nosso site!
Este artigo foi
lido 75328 vezes
Bookmark e Compartilhe

Páginas Relacionadas

Enquete
O Google Chrome OS irá desbancar o Microsoft Windows 7?
» ProgramaçãoAlgorítmo | C/C++ | Java

» WebHTML/XHTML | JavaScript | PHP

» Sistema OperacionalComandos de DOS | Windows | Linux | Mac/BSD

» OfficeWord/Wirter | Excel/Calc

» Áreas do SiteDownloads | Fórum | Blog