[resolvido] interfaces, extends & abstracts

6 respostas
D

Olá pessoal,

Estou implementando classes abstratas e interfaces…
Tenho a seguinte dúvida:

Tenho a classe Imovel, abstrata.
Tenho as interfaces, Venda e Locacao.
Outras duas, Casa e Apartamento, que extende IMOVEL.
E por fim as classes: CasaVnda, CasaLocacao, ApartVenda, ApartLocacao. As quais implementam VENDA e LOCACAO, e extendem CASA e APARTAMENTO.

Estou alocando os 4 tipos de objeto ( CasaVnda, CasaLocacao, ApartVenda, ApartLocacao ) em um vetor Imovel.
Como eu implemento o método toString() para imprimir informações de cada tipo dos 4 objts?

Eu implementei o método toString() nas classes CasaVnda, CasaLocacao, ApartVenda, ApartLocacao.

E estou chamando esse método assim:
imoveis[indice i].toString();

Nesse caso ele não deveria interpretar qual tipo de objeto ( CasaVnda, CasaLocacao, ApartVenda, ApartLocacao) está sendo chamado??

Abraço! Valeu! :lol:

6 Respostas

Rodrigo_Sasaki

Nesse momento ele deveria invocar o método toString que você sobrescreveu.

Está ocorrendo algum erro?

D

Então, eu fiz em cada uma das 4 classes finais a sobrescrição do método. Mas simplesmente não imprime nada. Nem mesmo reporta erro.

for(int x=0; x<=i; x++){ imoveis[x].toString(); }

Método de uma das 4 classes:

public String toString(){
		return "\nEndreco:\n\t"+getEndereco()+"\nQuantidade de comodos:\n\t"+getQtdComodos()+"\nMetragem:\n\t"+getMetragem()+"Vagas na garagem:\n\t"+getVagasGaragem()+"Valor:\n RS" + getValor() + "\nFiador:\n\t" + getNomeFiador() + "\nPeriodo de Contrato:\n\t" + getPeriodoContrato();
	}
Rodrigo_Sasaki

Os métodos estão realmente sendo invocados? chegou a usar um depurador?

você não está engolindo nenhuma exceção?

D

Então, não há nenhum problema. Utilizei o debug do Eclipse, porém, segue tudo correto. Só não imprime. Se caso foi necessário, se preferir e puder, te envio o projeto…
Valçeu mesmo!

Rodrigo_Sasaki

Ah, você não está imprimindo nada.

o método toString te retorna uma String, não imprime no console, você que tem que fazer isso.

Assim:System.out.println(imoveis[x].toString());Ou assim:System.out.println(imoveis[x]); Os dois irão imprimir a mesma coisa.

D

Noossa, que viagem a minha!
Realmente era esse meu grande problema! kkk

Não sei nem o que falar, kkkk

Muito obrigado pela ajuda Digaoneves!!
Vllw mesmo… :idea:

Criado 14 de setembro de 2012
Ultima resposta 14 de set. de 2012
Respostas 6
Participantes 2