Programação Orientada a ObjetosHerança
Relacionamento entre Classes
▪ Diferentes classes podem se relacionar entre si, criando/compondo novos tipos de objetos
▪ Um determinado objeto pode ser basear em um outro e adicionar informações, estendendo a classe
▪ Pode também se basear em dois ou mais tipos diferentes de objetos.
▪ É possível também que um objeto “utilize” outro tipo de objeto
▪ Um projetor não utiliza uma lâmpada?
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Relacionamento entre Classes
▪ Os relacionamentos entre classes são:
▪ Herança;
▪ Associação;
▪ Composição;
▪ Agregação;
▪ Dependência
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Quando falamos de herança estamos falando de reutilização de código
▪ uma nova classe é criada absorvendo atributos de uma classe já existente
▪ Esta nova classe pode ter as mesmas características da classe pai, pode ser mais específica ou com modificações em comparação com a classe pai
▪ Com a herança o tempo de desenvolvimento é reduzido devido a reutilização de código
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Os relacionamentos entre classes são:
▪ Herança;
▪ Associação;
▪ Composição;
▪ Agregação;
▪ Dependência
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Os relacionamentos entre classes são:
▪ Herança;
▪ Associação;
▪ Composição;
▪ Agregação;
▪ Dependência
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Os relacionamentos entre classes são:
▪ Herança;
▪ Associação;
▪ Composição;
▪ Agregação;
▪ Dependência
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Os relacionamentos entre classes são:
▪ Herança;
▪ Associação;
▪ Composição;
▪ Agregação;
▪ Dependência
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Os relacionamentos entre classes são:
▪ Herança;
▪ Associação;
▪ Composição;
▪ Agregação;
▪ Dependência
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Chamaremos de SUBCLASSE a clases que herda da classe pai, e chamaremos de SUPERCLASSE a classe que vai gerar uma classe filha
▪ A classe imediatamente acima da classe filha é uma SUEPRCLASSE direta
▪ A classe que não está imediatamente acima da filha chamamos de SUPERCLASSE indireta
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Dizemos então que o relacionamento de Herança define um relacionamento do tipo “é um”
▪ “Mountain Bike é uma bicicleta”
▪ Indica que uma de duas classes relacionadas (a subclasse) é uma forma especializada da outra (a superclasse)
▪ A superclasse é considerada uma generalização da subclasse
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Diferentes tipos de objetos frequentemente possuem semelhanças com outros
▪ Bicicletas Tandem
▪ Mountain Bikes
▪ Bicicletas de corrida
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Todas estas bicicletas possuem características de bicicletas
▪ Velocidade atual
▪ Rotação atual
▪ Marcha atual
▪ No entanto, também possuem características diferentes
▪ As Tandem possuem dois bancos e guidões
▪ Mountain Bikes possuem correntes maiores
▪ As de corrida possuem guidão angulado
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ A orientação a objetos permite que as classes herdem o estado e comportamento comuns a outras classes
▪ Neste exemplo, a classe Bicicleta se torna a superclasse de Mountain Bike, Tandem Bike e Road Bike
▪ Estas agora são consideradas subclasses
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Neste exemplo, o mecanismo de herança permite que MountainBike, TnademBike e RoadBike possuam automaticamente os mesmos atributos e métodos da superclasse Bicicleta
▪ E ainda permite que cada uma das subclasses definam seus atributos e métodos adicionais
▪ Ou seja, nas subclasses nos preocuparemos em definir aquilo que se tornam diferentes
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ O código da superclasse não estará disponível no código da subclasse
▪ Então é necessário que ele esteja bem documentado
▪ Quando uma subclasse possui mais que uma superclasse, usamos o termo herança múltipla
▪ Também, uma subclasse pode se tornar superclasse de outras
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Podemos pensar sobre herança como algo semelhante a funções
▪ Quando identificamos um trecho de código que se repete várias vezes, criamos uma função com aquele conteúdo
▪ Quando identificamos várias características em comum em um grupo de classes, podemos criar uma superclasse
▪ Evitamos a redundância de código
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Resumindo
▪ Uma subclasse herda os métodos e atributos da sua superclasse (de acordo com os modificadores de acesso)
▪ Considere uma classe Pessoa, dela podemos gerar uma classe chamada Funcionário, e desta podemos gerar uma classe chamada Gerente
▪ A classe gerente terá todos os atributos e métodos das classes superiores (superclasses) Funcionário e Pessoa, veja o diagrama no próximo slide
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
Pessoa
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Funcionário
Vendedor Gerente
Herança Múltipla
▪ Herança múltipla ocorre quando uma classe herda atributos e métodos de outras duas ou mais classes
▪ A linguagem C++ permite herança múltipla
▪ Linguagens como C# e Java não permitem
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Pessoa Funcionário
Gerente
Herança
▪ Vamos agora codificar a relação de herança com 3 níveisdo exemplo ao lado
▪ Nome e RG são atributos da classe Pessoa e,consequentemente, comum para todas as demaisclasses
▪ A classe funcionário herda estes atributos e ainda possuiCódigo Funcional (codFuncional) e salario
▪ O vendedor, além do salário, ainda possui a comissão
▪ O gerente possui e-mail, algo que o vendedor
não possui
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Pessoa
- nome- rg
Funcionario
- codFuncional- salario
Vendedor
- comissao
Gerente
Herança
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Pessoa
- nome- rg
Funcionario
- codFuncional- salario
Vendedor
- comissao
Gerente
Herança
▪ Crie os métodos gets e setspara os atributos de todas asclasses
▪ Agora, na classe principal,vamos criar um objeto do tipoVendedor e vamos invocaralguns métodos gets e sets
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Herança
▪ Linha 4: Criado o objeto v do tipovendedor
▪ Linha 7: Objeto v invocou ométodo setComissao() quepertence a classe Vendedor
▪ Linha 9 e 10: Objeto v invocou osmétodos setCodFuncional() esetSalario() da classe Funcionario
▪ Linha 12 e 13: Objeto v invocouos métodos setNome() e setRG()da classe Pessoa
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Especificadores de Acesso
▪ public:
▪ Os membros public de uma classe são acessíveis em qualquer parte de um programa em que haja uma referência a um objeto da classe ou das subclasses.
▪ private:
▪ Membros private são acessíveis apenas dentro da própria classe.
▪ protected:
▪ Membros protected podem ser acessados por por membros da própria classe, de subclasses e de classes do mesmo pacote
▪ protected também tem acesso de pacote.
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Especificadores de Acesso
▪ Todos os membros public e protected de uma superclasse mantêm seusespecificadores de acesso quando se tornam membros de uma subclasse
▪ Subclasses se referem a estes membros simplesmente pelo nome;
▪ Quando uma subclasse sobrescreve um método da superclasse, o métodooriginal da superclasse ainda pode ser acessado quando antecedido pela palavrasuper seguida de .
super.metodo();
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Class Object
▪ A hierarquia das classes em é iniciada pela classe Object
▪ Todas as outras classes herdam (ou estendem) direta ou indiretamente a partir dela
▪ Mesmo que não seja definido explicitamente.
▪ Define um construtor e 11 métodos
▪ Alguns devem ser sobrescritos pelas subclasses para melhor funcionamento.
▪ Não possui atributos.
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Por hoje é só!
▪ Qualquer dúvida:
▪ www.arieldias.com
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Referência
▪ Notas de aula Professor José Romildo Malaquias - UFOP
Professor Ariel da Silva Dias - www.arieldias.com - Obra Gratuita, proibida reprodução e venda
Top Related