1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Dúvida quanto o uso de instanceof

Olá galera, estou criando didaticamente um sistema de agenda. Estou seguindo um tutorial da internet, quando terminei, estudei o código e me deparei com uma dúvida: Existe as classes ContatoBasico e a Classe Contato. A Classe Contato é subclass da ContatoBasico (A classe Contato herda de ContatoBasico). Na classe principal (Classe Main) existe um método com a seguinte codificação:

static void mostraDados(ContatoBasico obj){

        System.out.println(obj.getDados());
        if (obj instanceof Contato)
            System.out.println(((Contato)obj).getIdade());
        System.out.println("xxxxxxxxxxxxxxxxxxxxx");
    }

Na linha do 'instanceof' eu observei que ele quer saber se obj "é uma instância de" Contato (pelo meu pouco conhecimento sobre instanceof acho que é isso). Mas o obj é ContatoBasico, mesmo assim ele entra na execução do if (ou seja dá true). No método main, olhei qual o tipo do objeto que estava passando como parâmetro, também era ContatoBasico. Fui estudar sobre 'instanceof' e descobri que quando: 'ObjetoDeSuperClasse instanceof SubClasse' DÀ FALSE - e quando 'ObjetoDeSubClasse instanceof SuperClasse' DÀ TRUE

No meu caso ocorreu o 'ObjetoDeSuperClasse instanceof SubClasse' não teria que dar FALSE? Ou eu estou enganado? OBS: Sou iniciante na área espero que entendam :) OBS2: Se alguém souber algum material sobre instanceof bom eu agradeceria muito rsrs

Abraço a todos, e desde já agradeço a quem me ajudar.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

3 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java tags orientação-a-objetos algoritmos ou faça a sua própria pergunta.