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?
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?
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'