Desenvolvimento de aplicações com herança

Programação 3: Orientação a Objetos e Java


Objetivo

Vamos implementar novamente o ambiente de simulação de uma sessão de usuário, desta vez usando herança.

As classes Arquivo e Diretório serão subclasses de uma nova classe, Repositorio, que possui os atributos e operacoes comuns a ambas as classes.


Metodologia

  1. Veja as assinaturas das classes Repositorio, Arquivo e Diretório.
  2. A implementacao em Java.
  3. A sessao de usuario nao mudou.

Quais sao as vantagens desta metodologia?
Agora o conteudo de um Diretorio e uma lista de repositorios, ao inves de uma lista de arquivos e uma lista de diretorios, exatamente iguais.


E agora...

Suponha agora que desejamos implementar uma nova função no sistema, com funcionalidade semelhante ao comando ls -R. Ou seja, desejamos poder obter uma listagem recursiva dos arquivos, a partir de um diretório qualquer.

Quais os problemas quando tentamos criar um método lsR na classe Diretório da hierarquia de classes definida? O metodo listarR da classe Lista_Rep precisa saber como listar recursivamente cada classe (Arquivo ou Diretorio)...

Para evitar esse problema, definimos um metodo abstrato lsR para um Repositorio (a implementacao de lsR so e dada nas classes Arquivo e Diretorio).

Assim, veja como ficou a versao final...


Débora Aranha (dcsa@di.ufpe.br)