0% acharam este documento útil (0 voto)
21 visualizações18 páginas

POO Java - Aula 5

A aula aborda conceitos de herança múltipla e interfaces na programação orientada a objetos, utilizando o exemplo de classes que representam atletas. A herança múltipla é discutida, destacando que Java não a suporta diretamente, mas pode ser implementada por meio de interfaces. Além disso, é apresentado um cenário de necessidade de um sistema informatizado para gerenciar operações de uma transportadora, enfatizando a importância de um sistema eficiente para otimizar entregas.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
21 visualizações18 páginas

POO Java - Aula 5

A aula aborda conceitos de herança múltipla e interfaces na programação orientada a objetos, utilizando o exemplo de classes que representam atletas. A herança múltipla é discutida, destacando que Java não a suporta diretamente, mas pode ser implementada por meio de interfaces. Além disso, é apresentado um cenário de necessidade de um sistema informatizado para gerenciar operações de uma transportadora, enfatizando a importância de um sistema eficiente para otimizar entregas.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Programação

Orientada a Objetos
AULA 5
Profa. Dra. Flávia Monteiro.
Tópicos a serem estudados
● Herança Múltipla
● Interfaces

Está quase acabando…


Herança Múltipla
● Imaginemos que precisamos fazer um sistema para a
Federação Brasileira de Atletismo e, para isso,
precisamos definir classes que representem
Nadadores, Corredores, Ciclistas e Triatletas;
● Quais são as características em comum entre os
atores do problema?
Herança Múltipla
● Como vamos abordar a classe Triatleta?
Herança Múltipla
● Nesse contexto então teríamos a seguinte hierarquia:
a. Teríamos uma superclasse Pessoa para agrupar as
características comuns a todos as pessoas;
b. Todo atleta é uma pessoa. Assim, Atleta herdaria de Pessoa
(Em Java: Atleta extends Pessoa);
c. Todo nadador é um atleta. Assim, Nadador herdaria de
Atleta (Em Java: Nadador extends Atleta);
d. Todo corredor é um atleta. Assim, Corredor herdaria de
Atleta (Em Java: Corredor extends Atleta);
e. Todo ciclista é um atleta. Assim, Ciclista herdaria de Atleta
(Em Java: Ciclista extends Atleta);
f. Todo triatleta é nadador, corredor e ciclista. Assim
Triatleta deveria herdar de Nadador, Corredor e Atleta.
Herança Múltipla
E o método
Atleta
aquecer() ?

Nadador Corredor Ciclista Triatleta


Herança Múltipla
● O conceito de herança múltipla torna possível que uma
classe descenda de várias classes;
● No caso do Triatleta emprega-se o conceito de herança
múltipla;
● O problema é que Java não implementa o conceito de
herança múltipla;
● Mas, como implementar o comportamento da herança
múltipla em Java, se Java não suporta herança múltipla?
a. Isso é possível por meio de interfaces.
Interfaces
● Uma interface pode ser vista como um conjunto de
declarações de métodos, sem as respectivas
implementações;
● É uma coleção de métodos que indica que uma classe
possui algum comportamento além do que herda de suas
superclasses;
● Uma interface é parecida com uma classe; porém, em uma
interface, todos os métodos são públicos e abstratos e
todos os atributos são públicos, estáticos e constantes;
● A sintaxe para criar uma interface é muito parecida com a
sintaxe para criar uma classe:
■ public interface <nome_da_interface>
Interfaces
● Os métodos incluídos em uma interface não definem esse
comportamento; essa tarefa é deixada para as classes que
implementam a interface (CADENHEAD; LEMAY, 2005,
p.17).

● O problema de herança múltipla apresentado na seção


anterior pode ser resolvido com a criação de:
■ 4 interfaces: Atleta, Corredor, Nadador e Ciclista;
■ 2 classes: Pessoa e Triatleta;
Interfaces
Interfaces
Interfaces
Interfaces
● A classe Triatleta herda da classe Pessoa e implementa as
interfaces Nadador, Corredor e Ciclista;
● O construtor de Triatleta apenas chama o construtor de sua
superclasse (Pessoa) repassando para ele o nome que
recebera como parâmetro;
● A classe Triatleta teve de implementar os métodos nadar(),
correr() e correrDeBicicleta() porque ela implementa as
interfaces Nadador, Corredor e Ciclista;
● Também é obrigatória a implementação do método
aquecer() pois, as interfaces Nadador, Corredor e Ciclista
que são implementadas pela classe Triatleta herdam da
interface Atleta.
Interfaces
● O uso de interfaces é recomendável no desenvolvimento de
sistemas para fornecer um contexto menos acoplado e mais
simplificado de programação;
● Por exemplo: temos uma interface responsável pela
comunicação com banco de dados; dessa forma, qualquer
classe que implementar a interface responderá a todas as
funcionalidades para acesso a banco;
● Suponhamos que um novo banco seja elaborado e que
desejemos fazer a troca do banco antigo por esse banco
novo; será necessário apenas elaborar a classe que
implemente a interface de acesso a esse banco novo e, ao
invés de utilizarmos um objeto da classe antiga, utilizaremos
um objeto da nova classe elaborada.
Acabou!

Estudem!
Nossa transportadora opera diariamente para atender às
demandas de nossos clientes, garantindo que suas encomendas
sejam entregues com eficiência e segurança. No entanto, o
gerenciamento manual de nossas operações está se tornando cada
vez mais desafiador, especialmente com o aumento do volume de
entregas. Precisamos urgentemente de uma solução informatizada
que nos ajude a coordenar melhor nossas atividades diárias.
No nosso dia-a-dia, recebemos uma grande quantidade de
encomendas de clientes em todo o país. Essas encomendas variam
em tamanho, peso e destino. Alguns pacotes são pequenos e leves,
enquanto outros são maiores e mais pesados. Além disso, os
destinos das entregas podem ser em áreas urbanas ou rurais, o que
pode afetar a logística de entrega.
Para atender a essa demanda, contamos com uma frota de veículos que variam
desde pequenos utilitários até caminhões de grande porte. Cada veículo tem sua
capacidade de carga e está disponível para ser atribuído a uma entrega conforme
necessário. Nossos motoristas são responsáveis por conduzir esses veículos,
enquanto nossos entregadores são encarregados de realizar as entregas
efetivamente.

No entanto, gerenciar todas essas informações manualmente é um desafio.


Precisamos de um sistema que nos permita registrar e rastrear cada pacote, atribuir
veículos a entregas específicas, acompanhar o status das entregas em tempo real e
garantir a comunicação eficiente entre os motoristas, entregadores e a equipe de
logística.

Portanto, estamos solicitando a criação de um sistema de gestão de transportadora


que nos ajude a organizar e otimizar nossas operações diárias. Este sistema deve
ser capaz de lidar com todas as nuances do nosso negócio, desde o registro inicial
das encomendas até a entrega final ao destinatário, garantindo uma experiência
perfeita para nossos clientes e eficiência operacional para nossa equipe.
Referência

Programação orientada a objetos : Curso técnico de


informática / Victorio Albani de Carvalho, Giovany
Frossard Teixeira. – Colatina: IFES, 2012

Você também pode gostar