Você está na página 1de 18

UFG - Instituto de Informtica

Curso: Cincias da Computao

Programao Orientada a Objetos


Prof.: Fabrzzio A A M N Soares professor.fabrizzio@gmail.com Aula 18 Herana Mltipla e Herana de Interfaces

Herana mltipla

Herana mltipla, em orientao a objetos:

o conceito de herana de duas ou mais classes.

Herana Mltipla

A herana mltipla permite que uma classe possua mais de uma superclasse e herde caractersticas de todos os seus ancestrais

Herana Mltipla

Isso permite a mesclagem de informaes de duas ou mais origens. Essa uma forma mais complicada de generalizao do que a herana simples, que restringe a hierarquia de classes a uma rvore.

Herana Mltipla

A vantagem da herana mltipla a maior capacidade de especificao de classes e a maior oportunidade de reutilizao. Ela traz a modelagem de objetos para mais prximo da maneira como se costuma pensar.

Herana Mltipla

A desvantagem a perda em simplicidade conceitual e de implementao. Em princpio, os tipos de diferentes regras de mesclagem podem ser definidos para solucionar conflitos entre caractersticas definidas por diferentes caminhos.

Herana Mltipla

Uma classe com mais de uma superclasse denominada classe de juno. Uma caracterstica proveniente da mesma classe ancestral encontrada em mais de um caminho herdada apenas uma vez; a mesma caracterstica.

Herana Mltipla

Os conflitos entre definies paralelas criam ambiguidades que precisam ser resolvidas nas implementaes. Na prtica, esses conflitos devem ser evitados ou explicitamente resolvidos para se evitar ambiguidades ou mal-entendidos, mesmo quando uma determinada linguagem fornece uma regra de prioridade para soluo de conflitos.

Exemplo de Herana Mltipla

Interfaces

Interface um recurso da orientao a objeto utilizado em Java que define aes que devem ser obrigatoriamente executadas, mas que cada classe pode executar de forma diferente.

Interfaces

Interfaces contm valores constantes ou assinaturas de mtodos que devem ser implementados dentro de uma classe.

Interfaces

E por que isso?

Isso se deve ao fato que muitos objetos (classes) podem possuir a mesma ao (mtodo), porm, podem execut-la de maneira diferente.

Interfaces

Usando um exemplo bem drstico, podemos ter uma interface chamada areo que possui a assinatura do mtodo voar(). Ou seja, toda classe que implementar areo deve dizer como voar().

Interfaces

Portanto, se eu tenho uma classe chamada pssaro e outra chamada avio, ambas implementando a interface areo, ento, nestas duas classes devemos codificar a forma como cada um ir voar().

Interfaces

Uma interface criada da mesma forma que uma classe, mas utilizando a palavra-chave interface no lugar de class.
interfaceNomeDaInterface{ metodoAbstrato(argumentos); }

Exemplo com interfaces


Interface Aluno: Considere-se a interface Aluno que especifica os mtodos a fornecer por qualquer aluno.
interfaceAluno{ voidestudar(); }

Exemplo com interfaces


Interface Docente: De modo anlogo, considere-se a definio da interface Docente:


interfaceDocente{ voidlecionar(); }

Exemplo com interfaces

Utilizando as duas interfaces anteriores e definindo alguns mtodos adicionais, possvel modelar a classe de um aluno de doutoramento que, por hiptese, d aulas.
publicclassDoutorandoimplementsAluno,Docente{ publicvoidescreverTese(){ } publicvoiddefenderTese(){ } publicvoidlecionar(){ } publicvoidestudar(){ }

Você também pode gostar