Pessoal, estou com uma dúvida… que não entra na minha cabeça… vamos supor que eu tenha uma classe pai denominada Pessoa… como classe filha eu tenho uma classe denominada Doutor e Pintor.
Se eu fizer uma classe teste… e realizar os seguintes comandos:
Doutor d = new Doutor (“Joao da Silva”);
Pintor p = new Pintor (“Pedro Carlos”);
Pessoal, estou com uma dúvida… que não entra na minha cabeça… vamos supor que eu tenha uma classe pai denominada Pessoa… como classe filha eu tenho uma classe denominada Doutor e Pintor.
Se eu fizer uma classe teste… e realizar os seguintes comandos:
Doutor d = new Doutor (“Joao da Silva”);
Pintor p = new Pintor (“Pedro Carlos”);
Os resultados serão o mesmo… correto??? Qual a finalidade de utilizar a variavel definida com tipo “superclasse” … ou seja Pessoa …
Alguem poderia me dar um help… obrigado.
Bem Tanto Doutor quanto o Pintor os 2 são Pessoas… Você poderia criar a classe Pessoa
com atributos que Pintor e Doutour tem em comum e simplismente herdar de Pessoa exemplo:
Nome, Idade, sexo… e por aí vai. Na verdade esse conceito é muito utilizado e de grande importância
pensa… se vc tivesse que criar uma classe com o atributo “nome, idade, sexo” várias vezes para
Doutor, Pintor, Pedreiro, Cliente, Jogador e aí que entra Herança.
Epero ter ajudado
Diabo_Loiro
Então o beneficio que o polimorfismo tras é a abstraçao. por exemplo...
Se eu criar uma função para trabalhar com Doutores e outra para trabalhar com Pintor e as coisas em comum dos 2 como obter o nome posso criar uma funcão que trabalhe com "Pessoas" sendo que ela iria aceitar medicos,pintores,cantores etc.. todos que forem pessoas. Evitando assim criar 2 funções getNameDoutor e getNamePintor.
void examinar(Doutor d){
d.examinar
//codigo de examinar
}
void pintar(Pintor p){
p.pintar();
//codigo para pintar
}
void getName(Pessoa a){
//obtem o nome de qualquer pessoa.
}
R
rodrigopim
vamos la tunneler,
veja este cenario um pouco mais elaborado: imagine o Pintor e Medico herdando da classe Empregado que por sua vez herda de Pessoa:
publicstaticvoidmain(String[]args){Pintorp=newPintor();Medicom=newMedico();pagarSalario(p);pagarSalario(m);}publicstaticvoidpagarSalario(Empregadoe){//faz lançamento do pagamento de salário}
faça testes acompanhando o fluxo do código, procure tbm escrever num papel o fluxo para vc entender, então vc começará a entender polimorfismo.