Program to demonstrate how to use instanceof operator for testing IS-A relationship in Java
package com.hubberspot.code; // Create a Shape class interface Shape { } // Create a Triangle class which // implements Shape class class Triangle implements Shape{ } // Create a Parallelogram class which // implements Shape class class Parallelogram implements Shape { } // Create a Rectangle class which // extends Parallelogram class class Rectangle extends Parallelogram { } // Create a class Car in different hierarchy class Car { } public class InstanceOfTest { public static void main(String[] args) { // Create an Object of Car, Rectangle, // Parallelogram and Triangle Car car = new Car(); Rectangle rectangle = new Rectangle(); Parallelogram parallelogram = new Parallelogram(); Triangle triangle = new Triangle(); // Lets now have a IS-A test of all these object // in order to know that whether a particular object // created above is of particular type we have a // test of it using instanceof operator / keyword // This operator tells us whether a particular // object is a instance of particular type or not. // The usage : object instanceof Class if(rectangle instanceof Shape) { System.out.println("rectangle is a Shape"); }else{ System.out.println("rectangle is not a Shape"); } if(triangle instanceof Shape) { System.out.println("triangle is a Shape"); }else { System.out.println("triangle is not a Shape"); } if(parallelogram instanceof Shape) { System.out.println("parallelogram is a Shape"); }else { System.out.println("parallelogram is not a Shape"); } if(rectangle instanceof Parallelogram) { System.out.println("rectangle is a Parallelogram"); }else { System.out.println("rectangle is not a Parallelogram"); } if(car instanceof Shape) { System.out.println("car is a Shape"); }else { System.out.println("car is not a Shape"); } // throws compile time error as "Incompatible conditional // operand types Car and Rectangle" : means we are comparing // class of different hierarchies plus they are incompatible // types /*if(car instanceof Rectangle) { System.out.println("car is a Rectangle"); }else { System.out.println("car is not a Rectangle"); } */ } }
Output of the program :