Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How instanceof will work on an interface

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?

like image 507
developer Avatar asked Nov 21 '12 06:11

developer


People also ask

How does Instanceof work in java?

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 .

How do you check if an object is an instance of an interface?

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.

Can you declare an instance of an interface?

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.

CAN interface can have instance variables?

In other words, interfaces can declare only constants, not instance variables.


2 Answers

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'

like image 114
sunil Avatar answered Sep 16 '22 11:09

sunil


object instanceof object_interface will yield true.

like image 22
SomeWittyUsername Avatar answered Sep 16 '22 11:09

SomeWittyUsername