13.3. Subtipos

Já sabemos que as classes e os interfaces definem tipos.

Se uma classe C implementa um interface I, dizemos que

 

A noção de subtipo está na base das regras usadas pelo compilador para atribuição de valores a variáveis de tipos não primitivos (instruções de atribuição e instanciação de parâmetros aquando de invocação de métodos):

 

Logo, as instruções seguintes são corretas, pois o tipo das referências à direita das duas primeiras atribuições é subtipo do tipo das variáveis à esquerda dessas atribuições:

Mais adiante voltaremos a este assunto para que compreenda as razões que justificam estas regras.

 

Considere o interface I definido na secção anterior. Suponhamos agora que existem

A figura seguinte representa um diagrama em UML das classes e interface e das suas relações.

Numa qualquer classe cliente das classes acima, podemos declarar variáveis às quais atribuímos referências para objetos dos tipos A e B e invocar métodos sobre esses objetos:

Repare que:

 

 


 

Anterior: 13.2. Representação em UML

Seguinte: 13.4. O interface Ganhavel