A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng

Apresentações semelhantes


Apresentação em tema: "UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng"— Transcrição da apresentação:

1 UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida

2 Herança Múltipla – Características (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.

3 Herança Múltipla – Exemplo 1

4 Herança Múltipla – Exemplo 2
Heranç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.

5 Herança Múltipla – Exemplo 3
Herança simples e herança múltipla no mesmo diagrama de classes; Especialização X Generalização

6 Herança Múltipla em C++ - Caracterí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.

7 Herança Múltipla em C++ - 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;

8 Herança Múltipla em C++ - Exemplo – 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

9 “Herança Múltipla” em Java - Caracterí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;

10 “Herança Múltipla” em Java - Exemplo
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);

11 “Herança Múltipla” em Java - Exemplo - 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


Carregar ppt "UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng"

Apresentações semelhantes


Anúncios Google