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]
-------------------------------------------------------------------------