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: 51.760 ]

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

Software Livre e o Código de Defesa do Consumidor

Software Livre... e um passo além

O "Linux Tinha Chapéu"

Instalando o Dynebolic sem instalador

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

Leitura recomendada

Por que e como referenciar artigos nos sites de informática

Distribuições GNU/Linux que você talvez nunca queira experimentar!

Docker + Cluster DRBD + SQL Server - Database as a Service Utilizando Volumes Replicados

Impressora JPG no Linux compartilhada para Windows

Daemons com shell script

  
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