Disrupção Digital - Disrupção na Comunicação - Prof.a Elis Monteiro
Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida
description
Transcript of Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida
![Page 1: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/1.jpg)
UTFPR – Campus Curitiba - DAELNUTFPR – Campus Curitiba - DAELNCursos de Eng. Eletrônica/Eng. da ComputaçãoCursos de Eng. Eletrônica/Eng. da Computação
IF62C - Fundamentos de ProgramaçãoIF62C - Fundamentos de Programação
Semana 10 – parte II: Herança Múltipla
Prof.a Tânia Preto / Prof. Robinson Vida
![Page 2: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/2.jpg)
Herança Múltipla – Características Herança Múltipla – Características (i/(i/
Ocorre quando uma subclasse herda características de duas ou mais superclasses imediatas, ou seja, é "filha" de mais de uma classe;
Permite combinar as características de várias superclasses existentes em uma nova classe;
Um ponto a ser observado é quanto a manipulação de nomes de membros duplicados nas classes base, ou seja, quando herda as mesmas características de classes diferentes;
Uso de qualificação: prefixar o nome do membro (atributo ou método) com o nome da classe base a que ele se refere, a fim de resolver o conflito.
![Page 3: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/3.jpg)
Herança Múltipla – Exemplo Herança Múltipla – Exemplo 11
![Page 4: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/4.jpg)
Herança Múltipla – Exemplo Herança Múltipla – Exemplo 22Herança simples e herança múltipla no mesmo diagrama de classes: é possível ter os dois tipos de herança;Ocorre herança repetida: A mesma classe ascendente será herdada por uma classe descendente mais de uma vez.
![Page 5: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/5.jpg)
Herança Múltipla – Exemplo Herança Múltipla – Exemplo 33
• Herança simples e herança múltipla no mesmo diagrama de classes;
• Especialização X Generalização
![Page 6: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/6.jpg)
Herança Múltipla em C++ - Herança Múltipla em C++ - CaracterísticasCaracterísticas
C++ permite a implementação de herança múltipla; Sintaxe:
class SubClasse : <tipo de acesso> SuperClasse1, <tipo de acesso> SuperClasse2,
..... <tipo de acesso> SuperClasseN
{// Definição da Classe
}obs.: <tipo de acesso> pode ser private, public ou
protected. Caso não seja colocado nenhum especificador de acesso, assume-se private como default.
![Page 7: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/7.jpg)
Herança Múltipla em C++ - Herança Múltipla em C++ - Exemplo Exemplo
class Hora { // classe base Hora protected: int hor, min, seg; public: Hora(int h, int m, int s) { hor = h; min = m; seg = s;
} virtual void display() {
std::cout << hor << “:” << min << “:” << seg; }
};class Data { //Classe Base Data protected: int dia, mes, ano; public: Data(int d, int m, int a) { dia = d; mes = m; ano = a;
} virtual void display() { std::cout << dia << “/” << mes << “/” << ano; }};
![Page 8: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/8.jpg)
Herança Múltipla em C++ - Herança Múltipla em C++ - Exemplo Exemplo – cont.– cont.
class Arquivo : public Data, public Hora {// Classe Derivada Arquivo
protected: char strArquivo[15]; public: Arquivo(char *nomeArquivo, int dd, int mm, int aaaa, int hh, int mn, int ss) : Hora(hh, mn, ss), Data (dd, mm, aaaa) { strcpy(strArquivo, nomeArquivo); }
void display();};void Arquivo::display() // Implementação do novo método display { std::cout << strArquivo << ” ” ; Data::display(); // usa display de Data std::cout << ” “; Hora::display(); // usa display de Hora }
![Page 9: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/9.jpg)
““Herança Múltipla” em Java - Herança Múltipla” em Java - CaracterísticasCaracterísticas
Java não permite a implementação de herança múltipla;
Uma maneira aproximada de contornar a necessidade de receber informações de entidades diferentes é através do uso de interfaces;
Em Java uma classe filha só pode ter uma classe mãe, porém uma classe pode implementar várias interfaces;
Uma interface descreve métodos, mas não os implementa;
A classe é responsável por implementar os métodos descritos na interface.
Essa “implementação” pode ser considerada algo semelhante a uma herança;
![Page 10: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/10.jpg)
““Herança Múltipla” em Java - Herança Múltipla” em Java - ExemploExemplo
public interface Relogio { // descrição da interface
public String getHoras(); } public interface Radio() { // descrição da interface
public void liga(); public void desliga(); public void trocaEstacao(int frequencia); }
![Page 11: Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida](https://reader036.fdocumentos.tips/reader036/viewer/2022082819/56813ad1550346895da2fd9b/html5/thumbnails/11.jpg)
““Herança Múltipla” em Java - Herança Múltipla” em Java - Exemplo - continuaçãoExemplo - continuação
public class RadioRelogio implements Radio, Relogio { private String horarioAtual;
// implementação das interfaces:
public RadioRelogio { // Inicializa objeto } public String getHoras() { return horarioAtual; } public void liga() { // Implementacao } public void desliga() { // Implementacao } public void trocaEstacao(int frequencia) { // Implementacao } }