You are on page 1of 9

Abstrao e Herana

Programao Orientada a Objetos Aula 11 Prof. Mr. Alexandre R. Lenz

Abstrao

De forma objetiva, uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos). Como classes abstratas so modelos de classes, ento, no podem ser instanciadas diretamente com o new, elas sempre devem ser herdadas por classes concretas.

Abstrao

Elas podem conter ou no mtodos abstratos. Ou seja, uma classe abstrata pode implementar ou no um mtodo. Os mtodos abstratos definidos em uma classe abstrata devem obrigatoriamente ser implementados em uma classe concreta. Para criarmos uma classe ou mtodo abstrato usamos a palavra-chave abstract.

Herana
Herana, do ponto de vista prtico, pode ser entendido como sendo um conjunto de instncias criadas a partir de um outro conjunto de instncias com caractersticas semelhantes, e os elementos desse subconjunto herdam todas as caractersticas do conjunto original.

Herana

A ideia fornecer um mecanismo simples (mas muito poderoso) para que se defina novas classes a partir de uma j existente. Assim sendo, dizemos que essas novas classes herdam todos os membros (propriedades+mtodos) da classe-me; A classe-filha pode possuir propriedades e mtodos prprios.

Exerccio

1) Criar uma estrutura hierrquica que contenha as seguintes classes:


Veiculo (classe abstrata) Bicicleta e Automovel.

Os mtodos da classe Veiculo so todos abstratos e possuem a seguinte assinatura:


listarVerificacoes() ajustar() limpar()
Acrescentar na classe Automovel o mtodo mudarOleo()
6

Exerccio
public class TestaOficina{ public static void main(String args[]) { Oficina o = new Oficina(); Veiculo v; for(int i=0;i<4;++i){ v=o.proximo(); o.manutencao(v); } } }

Exerccio
import java.util.*; public class Oficina{ Random r=new Random(); public Veiculo proximo(){ Veiculo v; int code=r.nextInt(); if(code%2==0) v=new Automovel(); else v=new Bicicleta(); return v; } public void manutencao(Veiculo vi){ vi.listarVerificacoes(); vi.ajustar(); vi.limpar(); if (vi instanceof Automovel) ((Automovel)vi).mudarOleo(); } }

Exerccio 2
Baixar o cdigo fonte disponibilizado no site para a aula 12.

1 Na classe e um Rdio, a) criar b) criar criar quantos

Main, ao invs de criar 1 TV


um Array com 10 TVs; um Array que possibilite Rdios eu quiser;

You might also like