instanceof
Somente pelo nome do objeto pode ficar difícil descobrir a qual classe ela pertence.
Porém, o Java provém uma solução simples pra isso, a keyword: instanceof
O nome é bem sugestivo e fácil de entender. Seu uso, mais ainda.
A sintaxe é:
nomeObjeto instanceof Classe
Essa é uma expressão, que retorna true ou false.
Vamos usar o exemplo de nosso tutorial passado, sobre Como Manipular Subclasses através do Polimorfismo o exemplo dos animais.
-->zoo.java public class zoo { public static void main(String[] args) { Vaca mimosa = new Vaca(); Gato bichano = new Gato(); Carneiro barnabe = new Carneiro(); Animal bichos[] = {mimosa, bichano, barnabe}; for(int i=0 ; i < bichos.length ; i++) { if(bichos[i] instanceof Vaca){ System.out.print("A vaca tem " + bichos[i].numeroPatas + " patas e faz "); bichos[i].som(); System.out.println(); } if(bichos[i] instanceof Gato){ System.out.print("O gato tem " + bichos[i].numeroPatas + " patas e faz "); bichos[i].som(); System.out.println(); } if(bichos[i] instanceof Carneiro){ System.out.print("O carneiro tem " + bichos[i].numeroPatas + " patas e faz "); bichos[i].som(); System.out.println(); } } } } -->Animal.java public abstract class Animal { protected String nome; protected int numeroPatas; public abstract void som(); } -->Vaca.java public class Vaca extends Animal { public Vaca(){ this.nome = "Mimosa"; this.numeroPatas = 4; } @Override public void som(){ System.out.print("MUUUU"); } } -->Gato.java public class Gato extends Animal{ public Gato(){ this.nome = "Bichano"; this.numeroPatas = 4; } @Override public void som(){ System.out.print("MIAU"); } } -->Carneiro.java public class Carneiro extends Animal{ public Carneiro(){ this.nome = "Banabé"; this.numeroPatas = 4; } @Override public void som(){ System.out.print("BÉÉÉ"); } }
4 comentários:
Muito bom. Parabéns!
Aprendi a sintaxe aqui, obrigado!
Parabéns, bom exemplo de encapsulamento e herança, para descrever o uso de instanceof. =D
Muito bem alaborado para entendermos herânça e outras coisas inclusive instance off... parabéns e muito obrigadi
Postar um comentário