Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 5 Herença Significa a capacidade de incorporar as características e as funcionalidades de uma classe. Assim como a herança de todas as operações e dados, você pode especializar métodos da super classe e especificar novas operações e dados, para refinar, especializar, substituir ou estender a funcionalidade da classe progenitora. Ao lado, podemos ver que a classe “Meios de Transportes” é uma classe genérica. Já as classes Terrestres, representam as características dos Meios de Transportes mais as peculiaridades dos veículos terrestres. Os meios Aéreos, também são meios de transportes, mas suas peculiaridades são diferentes dos outros tipos de meios de transportes, assim como os Marítimos. Terminologias Classe Abstrata Uma classe abstrata é utilizada quando deseja-se fornecer uma interface comum a diversos membros de uma hierarquia de classes. Os métodos declarados na classe abstrata serão implementados em suas subclasses, através de polimorfismo. Imagine uma classe que no seu sistema, a uma funcionalidade existente em todas as subclasses quer ser apresentada na superclasse. Este método é definido na superclasse como Abstract. Nas subclasses, estes métodos serão implementados, cada um com a sua peculiaridade. Vamos imaginar a seguinte hierarquia de classes: Empregado Chefe PorComissão Porltem PorHora onde Chefe, PorComissao, PorItem e PorHora são classes finais. Todas essas subclasses vão precisar redefinir o método ganha(). Como se tratam de tipos diferentes de empregado, cada um ganha de uma forma: Chefe: salário fixo e predefinido PorComissão: valor fixo + comissão * vendas Poritem: valor por produção * quantidade produzida PorHora: valor por hora * total de horas trabalhadas. Declarando o método como abstrato na superclasse, garante-se que nas 4 subclasses haverá a implementação do método ganha() para cada tipo de empregado (do contrário, objetos destas classes não poderão ser criados). Para testar esta implementação, precisamos de uma classe para que tenha o main(). Polimorfismo
Compartilhar