Classes

Falando sobre objetos foram usados nomes como João, Maria e Pedro, os quais denotam objetos específicos, neste caso as pessoas que habitam uma casa.

Também apareceram os nomes Xpit e Xbeta que denotam outros dois objetos bem particulares: os dois cães que também moram na casa.

Numa casa típica há, também, vários outros objetos para os quais em geral não há designação específica que os identifique (referencie) individualmente. É o caso das louças, móveis, etc.


Distinção entre classes e objetos

Note que em frases como "Xpit está lá no jardim brincando com Pedro" há referências a objetos específicos. Neste caso não há dúvidas sobre a identidade dos objetos que estão sendo referenciados: o cão de nome Xpit e a criança de nome Pedro.

Uma segunda forma de se referenciar objetos pode ser obtida por construções como: "o cão é amigo do homem". Neste caso as palavras cão e homem não referenciam nenhum objeto específico como no caso anterior. Estas palavras estão sendo usadas para referenciar aqueles objetos que possuem características de cães e homens, respectivamente, ou seja, aqueles objetos que possam ser de alguma forma identificados como sendo um cão ou um homem.

Observe, então, que existe uma certa categorização (classificação) dos objetos; há objetos que são xícaras, outros que são cães, outros que são pessoas, etc. Estas categorias (classes) agrupam os objetos com base em algum conjunto de propiedades comum a todos estes objetos. Para exemplificar, considere que os cães são objetos que tem as seguintes propriedades: pelos, rabo e que late. Esta visão simplista do que é um cão é suficiente para diferenciá-lo de, digamos, uma xícara, já que é sabido que as xícaras nao tem pelos e tampouco latem.


Hierarquia de Especialização/Generalização

Considere o diagrama que se segue:

Perceba que esta hierarquia difere muito da hierarquia de agregação/decomposição. Em vez de dizer que "x <é composto de> ..." ou que "y <é parte de> ...", aqui diz-se que:

 uma Pessoa <é um> Objeto
uma Criança <é uma> Pessoa
um Armário <é um> Móvel

Nesta hierarquia as categorias (classes) são tão mais específicas quanto mais abaixo elas aparecem. Louça, por exemplo, é uma classe que denota um grande número de objetos, incluindo os objetos das classes: Xícara, Prato, Copo, etc. Diz-se, então, que Xícara é uma especialização (subclasse) de Louça, pois ela denota objetos que possuem características mais particulares. De forma similar, a classe Móvel é uma especialização da classe Objeto.

Numa perspectiva inversa, as classes são tão mais genéricas quanto mais próximas do topo da hierarquia. Diz-se, então, que a classe Louça é uma generalização (superclasse) das classes Xícara, Prato e Copo.


Contextos de Observação

Há que se notar que dependendo do contexto (domínio de aplicação) em que se está imerso, um mesma classe pode ser especializada de diferentes formas. Num certo contexto a classe Pessoa, por exemplo, pode ser especializada segundo sua idade nas classes: Adulto, Criança e Bebê.

Em algum outro contexto esta mesma classe pode ser subdividida segundo sua situação administrativa em: Pessoa Física e Pessoa Jurídica.

O nível de detalhamento (especialização) também pode variar. No casa da classe Animal, por exemplo, num dado contexto ela pode ser especializada em: Cão, Gato e Homem.

Contudo, certas aplicações podem exigir um nível maior de detalhamento. Assim, esta mesma classe poderia ser especializada sua a taxonomia animal em:

Este, aliás, é o exemplo mais clássico da hierarquia de especialização/generalização.


Herança de propriedades

Como visto acima, sob o ponto de vista administrativo (no contexto de um banco, por exemplo) a noção de Pessoa geralmente é subdividida (subclassificada) em: Pessoa Física (um ente individual) e Pessoa Jurídica (uma empresa ou sociedade).

Uma possível descrição da estrutura (hierarquia de agregação/decomposição) de cada uma destas classes poderia ser:

e

Note que as três propriedades mais a esquerda (Nome, Endereço e Telefone) são comuns às duas classes. Como ambas as classes são subclasses da classe Pessoa, estas propriedades podem ser melhor descritas diretamente na classe Pessoa, evitando, desta forma, a repetição observada acima.

O efeito final é o mesmo, ou seja, os objetos pertencentes às classes PessoaFísica e PessoaJurídica terão as seis propriedades que lhe são características (as três comuns, mais as três particulares). Isto ocorre em função das classes PessoaFísica  e PessoaJurídica serem especializações da classe Pessoa e, portanto,  herdarem as suas propriedades.

A herança de propriedades também vale para as ações. Considere a hierarquia de especialização/generalização que se segue. Nela está expresso que MamíferoAve são subclasses  (especializações) de Animal, e que Homem, Gato e Cão são subclasses de Mamífero.

Uma açao característica de todos os mamíferos é mamar. Sendo assim, descreve-se esta ação diretamente na classe Mamífero, de forma que, por herança, todas as subclasses passam a apresentar esta propriedade. Evita-se, assim, a necessidade de descrever esta ação em cada uma das subclasses de Mamífero. De forma similar, uma açao característica de todos os animais é olhar. Por herança, as subclasses imediatas de Animal (Ave, Mamífero, etc) passam a apresentar esta propriedade e, por transitividade, as subclasses destas classes também passam a fazê-lo.

O resultado deste mecanismo de herança de propriedades é que um objeto da classe Cão, por exemplo, inclue em seu comportamento peculiar as ações olhar e mamar, além de outras ações bem particulares que estarão descritas diretamente na classe Cão.