Conceitos de Orientação a Objetos

Post on 30-Dec-2015

27 views 0 download

description

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. - PowerPoint PPT Presentation

Transcript of Conceitos de Orientação a Objetos

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

autordataDeChegada

imprimir()editar()

Carta Telegrama

transporte

anexar()

hora

registrar()pagar()

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

ContaBancária

ContaCorrente

ContaDePoupança

AplDeCurto 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

Lista

Pilha

objetoLista

objetoPilha

Classes Objetos Mensagens

AdicionaInicio()

RemoveInicio()

AdicionaFim()

RemoveFim()

AdicionaInicio()

RemoveInicio()

AdicionaFim()

RemoveFim()

Empilha()

Desempilha()

AdicionaInicio()RemoveInicio()AdicionaFim()RemoveFim()

Empilha()

Desempilha()

usaAdicionaFim()

usaRemoveFim()

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

gato

baleiahumano

mamifero

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 AveEntidade voadora

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