[quote=ViniGodoy]Faz tanto tempo que já quase não lembro.
Mas lembro-me que tive um pouco de dificuldade de entender o polimorfismo. E também que OO ficou muito mais clara quando comecei a associar código à objetos de verdade.
Uma técnica que tenho usado com meus alunos, e que tem ajudado muito é usar uma analogia simples. Eu ponho no powerpoint a figura de 4 bichinhos. Um gatinho, uma galinha, um porco e um cachorrinho. Peço para um aluno escolher um deles.
E então digo para a turma. “Esse aluno está apontando para um Animal”.
Peço então para outro aluno pedir uma característica no animal, para eles descobrirem que animal é esse. Quase institivamente, o aluno pergunta “Que barulho o animal faz?”
O aluno que está apontando então faz algum som, dependendo do bicho que escolheu como “Au! Au!”.
Todo mundo dá risada e acha que foi muito fácil, muito lógico. Então mostro isso em código:
[code]//Temos 4 animais na transparência
//Se são animais, todas essas classes “extends animal”.
Cachorro cachorro = new Cachorro();
Gato gato = new Gato();
Porco porco = new Porco();
Galinha galinha = new Galinha();
//A é uma variável que irá apontar para um animal
Animal a;
//Nossa colega, decidiu apontar para um cachorro.
a = cachorro;
//E então perguntamos. Que barulho o animal faz?
a.barulho();
//A resposta: Au au!
[/code]
A maioria, depois dessa brincadeira simples, tem os olhos iluminados e sorrisos bobos na face. Só tomara que não estejam é rindo da minha cada. :lol: [/quote]
Eu não tive dificuldades porque aprendi da mesma maneira que você citou. Comecei a enxergar tudo como objetos que interagem e se encaixam uns nos outros.