Pin It

How to use instanceof operator for testing IS-A relationship in Java ?.

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");


   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 :

Please Give Us Your 1 Minute In Sharing This Post!
Related Posts Plugin for WordPress, Blogger...
© 2012 Learn Java by Examples Template by Hubber Spot