wpjr2’s Weblog

Artigos e tutoriais úteis

Polimorfismo na música

Posted by wpjr2 em abril 20, 2008

Na programação orientada a objetos, o polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam. Assim, um mesmo método pode apresentar várias formas, de acordo com seu contexto. O polimorfismo é importante pois permite que a semântica de uma interface seja efetivamente separada da implementação que a representa. O termo polimorfismo é originário do grego e significa “muitas formas” (poli = muitas, morphos = formas).

No exemplo abaixo, operações foram definidas para as classes que extendem a classe Músico. De todas as operações, algumas poderão ser chamadas a partir de todas as classes, mas algumas destas não poderão ser chamadas.

class Musico{
public void afinarInstrumento(){
System.out.println(“Músico”);
}
}

class Tecladista extends Musico{
public void afinarInstrumento(){
System.out.println(“Tecladista”);
}
public void pressionarTecla(){
System.out.println(“Tecla pressionada”);
}
}

class Pianista extends Tecladista{
public void afinarInstrumento(){
System.out.println(“Pianista”);
}
public void fecharPiano(){
System.out.println(“Piano fechado”);
}
}

public class Ensaio{
public static void main(
String [] args){

Pianista p = new Pianista();
Teladista t = p;
Musico m = p;
p.afinarInstrumento(); // o pianista pode afinar o instrumento, OK
t.afinarInstrumento(); // o tecladista pode afinar o instrumento, OK
m.afinarInstrumento(); // o musico pode afinar o instrumento, OK
p.pressionarTecla(); // o pianista pode pressionar a tecla, OK
t.pressionarTecla(); // o tecladista pode pressionar a tecla, OK
m.pressionarTecla(); // o músico NÃO pode pressionar a tecla, ERRO
p.fecharPiano(); // o pianista pode fechar o piano, OK
t.fecharPiano(); // o tecladista NÃO pode fechar o piano, ERRO
m.fecharPiano(); // o músico NÃO pode fechar o piano, ERRO
}
}

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: