Herança
O que é herança?
Herdar é derivar características de gerações precedentes.
No mundo da Programação Orientada a Objetos, o termo é
associado com uma das formas de reutilização de software.
Através da herança, novas classes podem ser derivadas
das classes existentes. A nova classe herda propriedades e
métodos da classe base. A nova classe também pode
adicionar suas próprias propriedades e métodos
Herança
O método m3 agora
disponível para objB é
aquele implementado em
ClasseB
Herança
ERRADO!!!!
Herança
Refatoração
Superclasse
(características comuns)
Subclasses
(características específicas)
Herança
::Project2
CA CB
m1(...) m3(...)
m2(...) m4(...)
Composição
CA CB
m1(...) m3(...)
m2(...) m4(...)
m3(...)
m4(...)
Desvantagem:
duplicação de métodos → dificulta a manutenção do
software
Composição
Desvantagens: CB
Conceitualmente, a m3(...)
m4(...)
classe CA pode não SER
uma classe CB
3a solução: Composição
Composição
No entanto, é possível
fazer: