How instanceof will work on an interface
instanceof, interface, java
Solution
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'
Problem
`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?