Nuss… E Agora?!?

23ago/073

Orientação a Objetos: Q raios é isso!? (parte 3)

Voltemos ao exemplo anterior dos contêineres. Como vocês se lembram, quando eu joguei o método fechar() na classe Mãe, eu fiz com que ele fosse acessado por todas as classes filhas, por herança. “Claro, senão você não vai poder fechar nada” você diz. Concordo plenamente com essa observação, mas vamos parar pra pensar no seguinte: será que uma caixa, uma bolsa, uma garrafa e uma mala são fechadas da mesma forma?

Ouvi alguém dizer “É claro que não!” aí! É claro que não são fechadas do mesmo jeito. “Mas Tiago, se eu tenho um fechar() que é igual para todo mundo, como que vou fazer para fechar uma mala se é diferente de fechar uma garrafa?”. Aí que ta o negócio, eles não são necessariamente iguais para todo mundo.Quando você diz que a classe mãe tem o método fechar(), você diz que todas as classes filhas TAMBÉM possuirão o método fechar(), mas não necessariamente que todos os fechar() serão iguais. Isso é o que chamamos de Polimorfismo.

Logo assim que herdamos fechar(), podemos reescrever esse método em cada uma das classes filhas, mudando essa forma de fechar cada uma delas. Polimorfismo, ao pé da letra, significa “Capacidade de alguma coisa possuir várias formas”.

Poderíamos também sobrecarregar o método ligar() da classe Eletrodoméstico para que pudéssemos ligar uma televisão, um computador, uma geladeira e um vídeo-cassete.

Parecido com o Polimorfismo, temos o conceito de Sobrecarga. A Sobregarga é um tipo de Polimorfismo, mas possui algumas sutis diferenças. Imagine aquela Arena Multiuso do Pan, onde tivemos as competições de Basquete e Ginástica Olímpica. Dependendo do tipo de competição, a estrutura do ginásio é mudada. Se temos o método prepararParaCompeticao(), podemos dizer que, se prepararParaCompeticao receber Ginástica Olímpica, ele vai funcionar de forma diferente de quando receber Basquete. Ginástica Olímpica e Basquete são o que chamamos de parâmetros do método.

Sempre que temos O MESMO MÉTODO funcionando de formas diferentes dependendo dos parâmetros que foram passados, nós temos sobrecarga.

Como o intuito do blog NÃO é ensinar programação, não vou fazer que vocês se percam em linhas de código. O mais importante é que vocês entendam esses conceitos básicos e possam aplicá-los a quaisquer linguagens que queiram aprender.

É claro que, às vezes, teremos umas linhas de código em Action Script 3.0. Tenho que falar do Jogo, afinal de contas. A diferença é que elas serão meramente ilustrativas,ajudando a explicar algum problema de design ou projeto.

Falando nisso, acho q já é hora de voltarmos a ver coisas mais abrangentes, não? Então esperem para saber um pouco sobre os diversos profissionais que, juntos, são responsáveis pela concepção de um jogo. Até lá!

[EDIT] Links para as outras partes da matéria? Taê! Parte 1 e Parte 2

Comentários (3) Trackbacks (2)
  1. Até que fimmmmmmm, achei alguém para esclarecer sobre orientação a Objetos. Acho que você sabe quantas pessoas foram benecifiadas com essas explicações. Que Deus, em nome de Jesus Cristo, nos abençoes… você por ter feito esse tutorial e a mim por ter achado.

    Brigadão !!!! mesmo.

  2. Parabéns pelo artigo, deste jeito até eu entendi OO
    agora posso começar o meu joguinho em python + pygame o/

    obrigado
    Abs.

  3. Muito obrigado, Gabriel. Espero que o artigo lido tenha sido útil. Apareça e participe outras vezes!


Leave a comment

(required)