"Hallo, Amigo! Je hebt de instanceof- operator al ontmoet. Vandaag ga ik je vertellen hoe en waar je hem kunt gebruiken. instanceof is een heel eenvoudige en efficiënte operator."

"Dat klinkt als een advertentie!"

"Het is echt heel eenvoudig. Het wordt zo gebruikt: «object» instantie van «klasse» ."

Het controleert of een object een instantie is van een bepaalde klasse. Het is makkelijker dan het uit te leggen. Kijk naar dit voorbeeld:

Code Beschrijving
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt zal waar zijn . Het object waarnaar wordt verwezen door de variabele o is een instantie van de klasse Integer .
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt zal onwaar zijn . Het object waarnaar wordt verwezen door de variabele o is geen instantie van de klasse Integer . Het is een String- object.
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFIS zal waar zijn . Het object waarnaar wordt verwezen door de variabele o is een instantie van de klasse FileInputStream .

"Ja, dat is heel simpel."

"Deze operator is ook verantwoordelijk voor overerving. Bekijk het eens."

Code Beschrijving
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Hier hebben we drie klassendeclaraties: Dier, Kat en Tijger. Kat erft dier. En Tiger erft Cat.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  zal  waar zijn .
isTiger  zal  waar zijn .
isAnimal  zal  waar zijn .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  zal onwaar zijn .
isTiger  zal  vals zijn .
isAnimal  zal  waar zijn .

En zelfs interfaces:

Code Beschrijving
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
Maak twee klassen: Cat, TomCat en de Moveable-interface
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  zal  waar zijn .
isMoveable  zal  waar zijn .
isTom  zal  waar zijn .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  zal  waar zijn .
isMoveable  zal  false zijn .
isTom  zal  onwaar zijn .

De instanceof-operator ziet er als volgt uit: a instanceof B .

Met andere woorden, de operator instanceof retourneert true als:

1) variabele a slaat een verwijzing op naar een object van type B

2)  variabele a slaat een verwijzing op naar een object waarvan de klasse  B erft

3)  variabele a slaat een verwijzing op naar een object dat interface  B implementeert

Anders retourneert de instanceof- operator false .

'Begrepen. Dus waarom is dit nodig, oom Rishi?'

'Daar gaat Ellie je vandaag over vertellen. Dit is een heel aardige telefoniste. Daar zul je vandaag van overtuigd zijn.'