180 likes | 301 Views
Conceitos de Orientação a Objetos. Herança Exemplo de herança Usos de herança Derivação Pública X Privada Herança múltipla Agregação X Generalização. Herança. Herança é um mecanismo para derivar novas classes a partir de classes existentes.
E N D
Conceitos de Orientação a Objetos • Herança • Exemplo de herança • Usos de herança • Derivação Pública X Privada • Herança múltipla • Agregação X Generalização
Herança • Herança é um mecanismo para derivar novas classes a partir de classes existentes. • A classe derivada herda a representação de dados e operações de sua classe base. • Pode-se adicionar novas operações, estender a representação dos dados ou redefinir a implementação de operações existentes.
Herança Documento autor dataDeChegada imprimir() editar() Carta Telegrama transporte hora registrar() pagar() anexar()
Herança • Classe Derivada ou Subclasse ou Classe Filha: é uma classe que herda parte dos seus atributos e métodos de outra classe. • Classe Base ou Superclasse ou Classe Pai: é uma classe a partir da qual classes novas podem ser derivadas. • Classes Ancestrais são aquelas das quais uma superclasse herda. • Classes Descendentes são aquelas que herdam de uma subclasse.
Exemplo de herança Conta Bancária Conta Corrente ContaDe Poupança AplDe Curto Prazo
Exemplo de herança class ContaBancaria { private double saldo; // saldo corrente public ContaBancaria (double sal){ saldo = sal; } public void deposita(double valor){ saldo += valor; } public double retornaSaldo() { return saldo; } };
Exemplo de herança class ContaDePoupanca extends ContaBancaria { private double indice; public double calcula(); public double retira(); };
Exemplo de herança class ContaCorrente extends ContaBancaria { private double limite; private double taxa; public double descontaCheque(double valor); };
Exemplo de herança class AplCurtoPrazo extends ContaDePoupanca { private double fundoDisponivel; public double retornaFundoDisponivel(){ return fundoDisponivel; } };
Herança de implementação Mensagens Objetos Classes AdicionaInicio() RemoveInicio() AdicionaFim() RemoveFim() Lista objeto Lista AdicionaInicio() RemoveInicio() AdicionaFim() RemoveFim() AdicionaInicio() RemoveInicio() AdicionaFim() RemoveFim() Empilha() Desempilha() Pilha usa AdicionaFim() objeto Pilha Empilha() Desempilha() usa RemoveFim()
Herança de comportamento • O mecanismo de herança é empregado para construção de hierarquias de tipos. • Uma hierarquia de tipos é composta de subtipos e supertipos. • Definição de Subtipo: • Um tipo S é um subtipo de T se e somente se S proporciona pelo menos o comportamento de T. • Um objeto do tipo T pode ser substituído por um objeto do tipo S.
Herança de comportamento • Em Ada, uma variável do tipo SMALLINT herda todas as propriedades do tipo INTEGER. • A noção de tipo/subtipo assemelha-se à noção de conjunto/subconjunto. • Todos os objetos Baleia é um subconjunto dos objetos Mamífero.
Herança de comportamento mamifero baleia humano gato Mamifero Humano Baleia Gato
Derivação pública X privada • Em uma derivação pública, todos os atributos e operações publicos de uma classe tornam-se atributos e operações públicos de uma outra classe (subclasse). • Em uma derivação privada, todos os elementos públicos de uma classe tornam-se elementos privados de uma outra classe (subclasse).
Herança múltipla Mamífero Entidade voadora Ave Morcego Andorinha
Agregação X Generalização • O relacionamento de generalização é muito conveniente para a construção e manutenção de classes relacionadas com a aplicação. • Quando a herança múltipla está envolvida a generalização pode ser confundida com a agregação.
Agregação X Generalização • Herança múltipla permite que novos objetos sejam definidos pela fusão da estrutura e do comportamento de outros objetos diferentes. • Agregação permite que novos objetos sejam definidos pela composição da estrutura e do comportamento de outros objetos diferentes.
Agregação X Generalização carro lataria roda banco motor