Herança
Tecnologia Orientada a Objetos
Profª Renata Luiza Stange Carneiro Gomes
SI33A - 3º Período
Rua Presidente Zacarias de Góes, 875 - Santa Cruz CEP 85015-430 Guarapuava - PR – Brasil - Telefone Geral +55 (42) 3626-2300
Parte 3 Herança
Herança
Herança Múltipla
Herança Múltipla
5
Herança múltipla é a possibilidade de se definir uma subclasse com mais de uma superclasse.
CoisaQueVoa
Animal
Aviao
Ave
Mamifero
Elaborado por Simone Nasser Matos
13/09/2012
Herança Múltipla
6
Não abandona a regra “é-um”. A classe derivada dela deve possuir um relacionamento “é-um” para cada uma das classes pai.
Elaborado por Simone Nasser Matos
13/09/2012
Exemplo....
7
Gerente
Vendedor
GerenteDeVendas
Elaborado por Simone Nasser Matos
13/09/2012
Herança Múltipla
8
Conceitualmente, a herança múltipla é necessária para modelar o mundo real de maneira mais precisa.
Na
prática, ela pode levar a problemas na implementação pois nem todas as linguagens de programação orientadas a objetos suportam herança múltipla.
Herança Múltipla
Qual cor da ave?
CoisaQueVoa -cor -cor Animal
Aviao
Ave
Mamifero
13/09/2012
Elaborado por Simone Nasser Matos
Herança Múltipla - Ambiguidades
10
Ambiguidade de nomes:
O
problema consiste no fato que uma classe filha, herdando de duas outras classes pode não ter como decidir qual assinatura de método usar caso este métodos esteja nas duas classes pai.
Elaborado por Simone Nasser Matos
13/09/2012
Herança Múltipla - Ambiguidades
Por
exemplo, as superclasses GraphicalObject e CardDeck possuem um método (draw()) com a mesma assinatura e significado diferente.
Na
primeira é desenhar o objeto e na segunda desempilhar o objeto. Tendo uma subclasse GraphicalCardDeck, que herda características dessas superclasses, a mesma deverá decidir qual método usar em um