Laura,

Precisar ele n�o precisa. A� se entra numa quest� mais de design que
numa quest�o de...hmm compilador, digamos assim.

O "extends" funciona para uma classe "abstract" _exatamente_ da mesma
forma como funciona para uma classe n�o abstrata. A diferen�a � que voc�
nunca vai poder instanciar um objeto da classe abstrata. ATEN��O: isso
_n�o impede_ voc� de instanciar um objeto de uma de suas subclasses.

Isso quer dizer, usando o exemplo do Igor, que no arquivo principal.java
voc� n�o pode fazer

  veiculo v = new veiculo();    <--- erro na compila��o

mas voc� pode fazer

  moto m = new moto();  <-- moto e jeep N�O S�O abstract
  jeep j = new jeep();

A pergunta �, por que fazer a classe abstract? 

Se ( no seu sistema todos os ve�culos s�o somente e somente s� motos e
jeeps, 
     isto �, n�o existe um ve�culo, sem que ele seja ou um jeep ou uma
moto, ) {
   // ent�o
   N�o faz sentido, na realidade do seu projeto, permitir ao programador
fazer

     veiculo v = new veiculo();

}
elseif( Se no seu sistema voc� tem motos, jeeps, e de vez em quando algo
diferente,
        mas como � algo muito dif�cil de acontecer voc� decide n�o fazer
uma classe s� pra isso ) {
  // ent�o
  Voc� deixa a classe veiculo sem ser abstract, e quando tiver de
referenciar a um ve�culo que n�o � moto
    nem jeep, voc� usa:

    veiculo v = new veiculo();
}


Essa discuss�o sobre design poderia avan�ar para o uso de interfaces,
mas isso fica para um outro dia. ;-)

[]s,

Alexei Znamensky <[EMAIL PROTECTED]>
Fone: +55 11 3814 1911, ramal 125

Spectrum Engenharia LTDA
http://www.spectrum.com.br/



> -----Original Message-----
> From: Laura Silveira Mastella [mailto:[EMAIL PROTECTED]]
> Sent: sexta-feira, 19 de outubro de 2001 08:50
> To: [EMAIL PROTECTED]
> Subject: Re: [java-list] D�vida
> 
> 
> Ol�,
> 
> Porque vc precisa declarar a classe Veiculo como "abstract"?
> > abstract class veiculo{
> 
> N�o sei como funciona quando vc faz um "extends" de uma 
> classe "abstract",
> mas vc Com Certeza nao poder� instanci�-la. E talvez tamb�m 
> seja preciso
> colocar um "public" na frente de class principal.
> 
> []'s
> 
> Laura
> 
> 
> ----- Original Message -----
> From: "Igor Betim de Freitas" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Thursday, October 18, 2001 8:27 PM
> Subject: [java-list] D�vida
> 
> > Arquivo ==> Veiculo.java
> >
> > abstract class veiculo{
> >    // aqui declarei m�todos e atributos...
> >
> >    // depois criei uma s�rie de Sub Classes para a classe Ve�culo
> >    class moto extends veiculo{
> >    }
> >
> >   class jeep extends veiculo{
> >   }
> > }
> >
> > Em um arquivo separado, tenho o programa principal:
> >
> > Arquivo ==> principal.java
> >
> > class principal{
> >    public static void main(String args[]){
> >       moto obj_moto;
> >       jeep  obj_jeep;
> >    }
> > }
> 
> ------------------------------ LISTA SOUJAVA 
> ---------------------------- 
> http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP 
> d�vidas mais comuns: http://www.soujava.org.br/faq.htm
> regras da lista: http://www.soujava.org.br/regras.htm
> para sair da lista: envie email para 
> [EMAIL PROTECTED] 
> --------------------------------------------------------------
> -----------
> 
> 

------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br  -  Sociedade de Usu�rios Java da Sucesu-SP
d�vidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------

Responder a