1 / 11

Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida

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

tayte
Download Presentation

Semana 10 – parte II: Herança Múltipla Prof.a Tânia Preto / Prof. Robinson Vida

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UTFPR – Campus Curitiba - DAELNCursos de Eng. Eletrônica/Eng. da ComputaçãoIF62C - 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: classSubClasse : <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 } }

More Related