instanceof
can be used to test if an object is a direct or descended instance of a given class. instanceof
can also be used with interfaces even though interfaces can't be instantiated like classes. Can anyone explain how instanceof
works?
The instanceof operator in Java is used to check whether an object is an instance of a particular class or not. objectName instanceOf className; Here, if objectName is an instance of className , the operator returns true . Otherwise, it returns false .
The java “instanceof” operator is used to test whether the object is an instance of the specified type (class or subclass or interface). It is also known as type comparison operator because it compares the instance with type. It returns either true or false.
You cannot create instances of a Java interface by itself. You must always create an instance of some class that implements the interface, and reference that instance as an instance of the interface.
In other words, interfaces can declare only constants, not instance variables.
First of all, we can store instances
of classes that implements a particular interface
in an interface reference variable
like this.
package com.test; public class Test implements Testable { public static void main(String[] args) { Testable testable = new Test(); // OR Test test = new Test(); if (testeable instanceof Testable) System.out.println("instanceof succeeded"); if (test instanceof Testable) System.out.println("instanceof succeeded"); } } interface Testable { }
ie, any runtime instance that implements a particular interface will pass the instanceof
test
EDIT
and the output
instanceof succeeded instanceof succeeded
@RohitJain
You can create instances of interfaces by using anonymous inner classes like this
Runnable runnable = new Runnable() { public void run() { System.out.println("inside run"); } };
and you test the instance is of type interface, using instanceof
operator like this
System.out.println(runnable instanceof Runnable);
and the result is 'true'
object instanceof object_interface
will yield true
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With