Ir ao conteúdo

Posts recomendados

Postado

(classe 1)

public abstract class ContaBancaria{
   float saldo;
   int numero
}

(classe 2)

public class ContaCorrente extends ContaBancaria{
}

(classe 3)

public class ContaPoupança extends ContaBancaria{
}

(classe 4)

public class Cliente{
    ContaBancaria conta;
}

(classe 5)

public class app{
   public static void main(string[] args){
      HashMap<Integer, Cliente> banco = new HashMap<Integer, Cliente>();
      cliente.get(i).getConta() // aqui e onde quero chegar, quero usar um typecast pra tratar a conta da classe cliente como ContaCorrente ou ContaPoupança
      //pra eu poder acessar os metodos das subclasses, ((ContaCorrente)getConta()) nao funciona, tem alguma maneira que eu possa usar nessa fase do codigo
     //de usar um typecast ou algum outro jeito de acessar as subclasses?
   }
}

 

  • 3 semanas depois...
Postado

Sinceramente é um erro complicado ... eu prefiro fazer typecasts usando if para testar o tipo do objeto antes de converter

 

if (client.get(i).getConta() instanceof ContaCorrente) {
  ContaCorrente cc = (ContaCorrente) client.get(i).getConta();
}else if (client.get(i).getConta() instanceof ContaPoupanca){
  ContaPoupanca poupanca = (ContaPoupanca) client.get(i).getConta();
}

PS.: Sei que foi exemplo, mas evite usar caracteres especiais nos nomes das classes, dependendo da versão do compilador pode dar problema ...

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!