Programação Orientada a Objetos

Propaganda
Instituto Federal de Santa Catarina – IFSC
Campus São José
Programação Orientada a Objetos
Herança e Polimorfismo
Prof. Francisco de Assis S. Santos, Dr.
São José, 2015.
Instituto Federal de Santa Catarina – IFSC
Campus São José
Herança em POO
• O conceito de herança torna mais rápido o desenvolvimento de
softwares complexos
• Novas classes são criadas baseadas em classes existentes
• Classe filha, subclasse ou classe derivada
• A classe que herda os atributos e funções de outra classe
• Classe pai, superclasse ou classe base
• A classe cujo membros são herdados por outras classes
Ideal para casos onde são necessárias classes distintas para atacar
problemas específicos. Porém, tais classes necessitam compartilhar
um núcleo comum
Instituto Federal de Santa Catarina – IFSC
Campus São José
Herança – Exemplo: Sistema para cadastro de
produtos
• Uma industria da área de telecomunicações necessita de um sistema
para cadastrar os produtos que fabrica
• Aparelho telefônico
• As informações necessárias para o cadastro são:
• código, número de série, modelo, cor, peso, dimensões (AxLxP)
Instituto Federal de Santa Catarina – IFSC
Campus São José
Herança – Exemplo: Sistema para cadastro de
produtos
• A empresa começou a fabricar também telefones sem fio
• Os telefones sem fio compartilham todas as características de um
telefone, porém possuem novas características
• frequência, quantidade de canais, distância de operação
• O atual sistema não permite cadastrar essas novas informações
O que fazer?
1 - Criar uma nova classe telefone sem fio e colocar nela tudo o
que tem na classe telefone mais as características do telefone sem
fio?
2 - Herdar as características comuns da classe telefone e adicionar
as particulares do telefone sem fio?
Instituto Federal de Santa Catarina – IFSC
Campus São José
Herança – Exemplo: Sistema para cadastro de
produtos
Instituto Federal de Santa Catarina – IFSC
Campus São José
Herança : Superclasse
Instituto Federal de Santa Catarina – IFSC
Campus São José
Herança : Subclasse
Instituto Federal de Santa Catarina – IFSC
Campus São José
Herança: Criando instâncias
Instituto Federal de Santa Catarina – IFSC
Campus São José
Membros públicos, privados e protegidos
• Os membros privados de uma classe só podem ser acessados pelos
demais membros desta mesma classe
• Os membros públicos de uma classe podem ser acessados por
qualquer outra classe
• O modificador de acesso protected apresenta uma restrição
intermediaria entre o private e o public
• Membros protegidos podem ser acessados pelos demais membros da
classe e pelos membros das classes derivadas
Instituto Federal de Santa Catarina – IFSC
Campus São José
Modificador de acesso protected: exemplo
Instituto Federal de Santa Catarina – IFSC
Campus São José
Modificador de acesso protected: exemplo
Instituto Federal de Santa Catarina – IFSC
Campus São José
Herança múltipla
• No desenvolvimento de softwares complexos poderemos nos deparar
com situações onde uma nova classe possui características
semelhantes com duas ou mais classes existente
• A linguagem C++ possui o conceito de herança múltipla permitindo
que uma classe seja derivada de varias classes base
Em Java uma classe só pode derivar de uma classe. O conceito
de herança múltipla pode ser obtido em Java fazendo uso de
Interfaces
Instituto Federal de Santa Catarina – IFSC
Campus São José
Exercícios
1) Para um aplicativo que trabalha com desenhos
Instituto Federal de Santa Catarina – IFSC
Campus São José
Polimorfismo
Polimorfismo
é possível na presença de herança, quando são
implementados métodos de mesma assinatura na superclasse e nas
subclasses, e necessariamente realizando modificações nos métodos das
subclasses para atender suas particularidades.
Com o polimorfismo, é possível projetar e implementar sistemas que são
mais facilmente extensíveis. Os programas podem ser escritos para
processar genericamente, como objetos de todas as classes existentes
em uma hierarquia. Podem ser adicionadas classes com pouca
modificação da parte genérica do programa. As únicas partes de um
programa que requerem modificações são aquelas partes que exigem
conhecimento direto da classe particular que é adicionada a hierarquia.
Instituto Federal de Santa Catarina – IFSC
Campus São José
Exemplo de Polimorfismo
Instituto Federal de Santa Catarina – IFSC
Campus São José
Exemplo de Polimorfismo
Instituto Federal de Santa Catarina – IFSC
Campus São José
Polimorfismo
Instituto Federal de Santa Catarina – IFSC
Campus São José
Exercícios
2) Desenvolva em Java classes para um aplicativo bancário. Deve conter
as classes de conta bancária, poupança, corrente, pessoa, cliente,
bancário e gerente. Identifique os atributos e métodos essenciais para o
funcionamento do aplicativo. Deve-se aplicar o conceito de
polimorfismo. Na classes principal devem ser instanciados objetos e
realizadas as operações convencionais de uma conta poupança, conta
corrente e atribuições dos funcionários na manipulação das contas dos
clientes do banco. Exemplos: Gerente atribui limites de crédito ao cliente
e funcionário realiza operações de empréstimos. Lembrando que as
operações básicas das contas são impressões de saldos, extratos,
compensação de cheques, depósitos e transferências.
Instituto Federal de Santa Catarina – IFSC
Campus São José
Referências
Deitel, H. M. & Deitel, P. J. Java, como programar. 4. ed. Porto
Alegre: Bookman, 2003.
Notas de aula do Prof. Emerson Ribeiro de Mello, 2014.
Apresentação Programação por Objectos Java. Parte 6:
Herança e Polimorfismo. LEEC@IST, 2015.
Download