Programação (III) - Programação Orientada a Objetos (POO)

Este é o terceiro artigo da série sobre programação e vamos falar aqui sobre POO, que não é a melhor coisa do mundo, mas é o melhor que já vi para a programação nestes meus 25 anos no ramo.

[ Hits: 53.016 ]

Por: Edvaldo Silva de Almeida Júnior em 04/07/2008 | Blog: http://emeraldframework.net


Polimorfismo



Atenção agora, pois esse é um conceito que causa muita confusão em POO. A razão da confusão é que muitos confundem polimorfismo com construtores múltiplos (sobrecarregados).

Em algumas linguagens é possível "sobrecarregar" o construtor de uma classe. O que significa isso?

Sobrecarregar um construtor significa que vamos fornecer diversos construtores diferentes para uma mesma classe. Elas será construída de acordo com a chamada específica feita.

Um caso comum é quando queremos prover a classe com um "construtor default", ou seja, um construtor que cria um objeto básico daquela classe. Para exemplificar, na nossa classe Sentável poderia ser algo assim:

class Sentavel {


   public:

      Sentavel( int, int ); // O construtor já definido antes
      Sentavel();


};

E na implementação acrescentaríamos:

Sentavel::Sentavel() {
   this->set_assentos( 1 );
   this->set_suportes( 4 );
}

E com isso teríamos criado um "objeto padrão" que poderia ser posteriormente modificado, dependendo da lógica da nossa aplicação.

Tudo isso é muito lindo e dá uma flexibilidade ainda maior para a POO, mas eu tenho uma novidade: ISSO NÃO É POLIMORFISMO!

Ao contrário do que muitos pensam, polimorfismo não é poder criar uma classe de formas diversas com construtores sobrecarregados.

Polimorfismo é a capacidade implícita de um objeto de se comportar como seus ancestrais.

Para entender melhor, consideremos um dos objetos que instanciamos a partir da classe Sentável na seção 8.

Suponha que tivéssemos optado por construir uma classe Tamborete, por exemplo:

class Tamborete : Sentavel {

};

Qualquer referência a essa classe pode ser interpretada como uma referência à classe anterior, de forma que podemos explorar em Tamborete recursos que estão disponíveis em Sentável.

Isso é simples conseqüência do fato de que ao ser um Tamborete o objeto não deixa de ser um Sentavel. Voltando para Aristóteles:

PREMISSA 1: Todo Tamborete é um Sentável.
PREMISSA 2: X é um Tamborete.
CONCLUSÃO: X é um Sentável.

Silogismo válido!

Página anterior     Próxima página

Páginas do artigo
   1. O Gênesis
   2. Um pouco de Filosofia
   3. POO
   4. Classe
   5. Implementação
   6. Revisando a implementação
   7. Escopo e Encapsulamento
   8. Instância (Objetos, finalmente!)
   9. Herança
   10. Polimorfismo
   11. Referências e conclusão
Outros artigos deste autor

KDE em um PC "primitivo"

O "Linux Tinha Chapéu"

Software Livre... e um passo além

Programação (II) - Modularização

Instalando Slackware "na marra"

Leitura recomendada

Fazendo uma conexão bridge no VirtualBox

Mensageiro instantâneo

Personalizando seu lilo no Debian

Por quê?

Instalando programas utilizando os fontes no seu Slackware com o checkinstall

  
Comentários
[1] Comentário enviado por gabriel.av em 05/07/2008 - 20:30h

Olha eu achei isso muito importante flw

[2] Comentário enviado por ssdeassis em 05/07/2008 - 21:56h

esperei muito pela terceira parte do artigo continua muito bom como os dois primeiros tenho aprendido muito com a sua série de artigos. Agora vamos ao proximo. Meus parabems.

[3] Comentário enviado por k4mus em 05/07/2008 - 22:37h

Parabens Amigo!!

..vc conseguiu explicar a POO de uma forma agradavel e simples de entender.

Parabens!

[4] Comentário enviado por f_Candido em 06/07/2008 - 14:46h

Muito bom. Parabéns. Bem Simples e Direto.

Abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts