Acesso a menbros de classes abstract  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
Silveira.Marcelo
Debugger

Membro desde: 28/01/2009 20:09:15
Mensagens: 66
Offline

Olá galera

Gostaria que alguém esclarece uma dúvida minha. Pois bem vamos lá. Criei um pacote e dentro duas classes. Uma com o modificador não-referente abstract e outra concreta. Sei que uma classe abstract não pode ser instanciada jamais em uma classe concreta. Eis a minha experiência.

Minha classe abstract


Vou estendê-la a partir de outra classe em outro pacote



O que acontece pessoal é que o compilador reclama que a classe TesteCarroAbstrato não é uma classe abstract e não pode sobrescrever o método calcularVelocidade(). Se coloco as duas em um mesmo pacote roda direitinho. Posso concluir então que somente é possivel rodar um programa que tenha uma classe concreta estendendo uma classe abstrata desde que as duas estejam no mesmo pacote? Ou se estiver errado, alguém poderia apontar onde está o errro e onde posso corrigir.

Estou aguardando um feedback. Obrigado por enquanto


Java Web Developer
Bacharel em Sistemas de Informação
Rumo a SCJP
[MSN]
quikkoo
JavaEvangelist
[Avatar]

Membro desde: 30/10/2006 21:10:14
Mensagens: 406
Localização: minas
Offline

eu acho q o problema esta na visibilidade das funções, coloque-as seus arquivos em um mesmo pacote ou declare as funções abstratas como publicas

the_book->is_on(the_table);
Silveira.Marcelo
Debugger

Membro desde: 28/01/2009 20:09:15
Mensagens: 66
Offline

Olá quikko

Não tem problema de visibilidade não e vc está certo dentro do mesmo pacote o programa roda direitinho. O problema é quando vc importa uma classe abstract e estende ela a partir de uma classe concreta. Ai gera a exception que eu te falei. Mas valeu cara pela ajuda. Deus te abençõe

Java Web Developer
Bacharel em Sistemas de Informação
Rumo a SCJP
[MSN]
marcelo.silva
Debugger
[Avatar]

Membro desde: 13/12/2010 20:28:08
Mensagens: 61
Offline

Coloque o modificador protected nos métodos para que classes fora desse pacote que herdam essa classe também herdem os métodos
ederson.js
Thread.start()
[Avatar]

Membro desde: 31/01/2010 21:46:57
Mensagens: 41
Localização: Campinas/SP
Offline

É só declarar como público os métodos da classe CarroAbstrato.

Fica assim:


Abraço;

"Não sabemos o que o dia de amanhã nos reserva, mas sabemos Quem o tem nas mãos" Rev. William Marrion Branham
[Email] [MSN]
Silveira.Marcelo
Debugger

Membro desde: 28/01/2009 20:09:15
Mensagens: 66
Offline

Perfeito ederson, havia esquecido desse pequeno detalhe. Os métodos que eu havia declarado na classe abstract CarroAbstrato estavam com nível de acesso default, por mais que a classe estivesse com acesso public, meu métodos jamais seriam sobreescritos devido a visibilidade em outra classe de outro pacote. São esses pequenos detalhes que podem nos levar a loucura na hora da prova.


Obriagdo amigo e que Deus te abençoe na hora que tu fores fazer a prova

Java Web Developer
Bacharel em Sistemas de Informação
Rumo a SCJP
[MSN]
Silveira.Marcelo
Debugger

Membro desde: 28/01/2009 20:09:15
Mensagens: 66
Offline

Problema resolvido galera, vejam o recado que mandei para ederson no último post dess tópico

Java Web Developer
Bacharel em Sistemas de Informação
Rumo a SCJP
[MSN]
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team