Menggunakan operator instanceOf hierarki turunan di Java
Operator InstanceOf Dalam Hierarki Turunan Di Program Java
Di artikel Memahami Konsep Turunan (Inheritance) Di Java dan Memahami Konsep Polimorfisme (Polymorphism) Di Java, Anda dapat mempelajari konsep turunan dan juga kaitannya dengan konsep lain di pemrograman Java. Dalam hierarki turunan kelas di Java, obyek subclass dapat diberikan ke variabel dengan tipe superclass.

Setiap instance (obyek) subclass adalah juga instance (obyek) dari superclass. Konversi obyek hanya dapat dilakukan bila obyek-obyek tersebut berasal dari kelas yang berada dalam hierarkhi turunan. Anda dapat menggunakan operator instanceof untuk mengetahui kaitan antara obyek sebuah kelas dalam hierarki turunan dengan kelas lainnya.

Berikut ini adalah dua kode program Java yang menjelaskan keterkaitan antara obyek satu dengan obyek lainnya. Operator instanceof akan menghasilkan nilai boolean true apabila obyek dari subclass adalah juga obyek dari superclass.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Nama file : InstanceOf.java
// Mendemonstrasikan penggunaan operator instanceof
 
// deklarasi kelas
public class InstanceOf {
 
   // Metoda main
   public static void main(String[ ] args) {
 
      System.out.println();
      System.out.println("new Kerucut() instanceof Kerucut : " +
         (new Kerucut() instanceof Kerucut));
      System.out.println("new Kerucut() instanceof Lingkaran : " +
         (new Kerucut() instanceof Lingkaran));
      System.out.println("new Kerucut() instanceof BangunDatar : " +
         (new Kerucut() instanceof BangunDatar));
      System.out.println("new Kerucut() instanceof Object : " +
         (new Kerucut() instanceof Object));
   }
}
 
class Kerucut extends Lingkaran {
   // Data dan metoda
}
 
class Lingkaran extends BangunDatar {
   // Data dan metoda
}
 
class BangunDatar extends Object {
   // Data dan metoda
}

Operator instanceof dalam hierarki turunan inheritance kelas Java

Instance (obyek) sebuah kelas adalah juga instance (obyek) dari superclass, tetapi tidak merupakan instance dari kelas turunan yang lebih rendah atau kelas yang lebih spesifik. Bila Anda menggunakan operator instanceof, maka dihasilkan nilai boolean false.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Nama file : InstanceOf2.java
// Mendemonstrasikan penggunaan operator instanceof
 
// deklarasi kelas
public class InstanceOf2 {
 
   // Metoda main
   public static void main(String[ ] args) {
 
      System.out.println();
      System.out.println("new BangunDatar() instanceof Kerucut : " +
         (new BangunDatar() instanceof Kerucut));
      System.out.println("new BangunDatar() instanceof Lingkaran : " +
         (new BangunDatar() instanceof Lingkaran));
      System.out.println("new BangunDatar() instanceof BangunDatar : " +
         (new BangunDatar() instanceof BangunDatar));
      System.out.println("new BangunDatar() instanceof Object : " +
         (new BangunDatar() instanceof Object));
   }
}
 
class Kerucut extends Lingkaran {
   // Data dan metoda
}
 
class Lingkaran extends BangunDatar {
   // Data dan metoda
}
 
class BangunDatar extends Object {
   // Data dan metoda
}

Operator instanceof dalam hierarki turunan inheritance kelas Java

Ketika obyek sebuah kelas dikonstruksi, maka kelas-kelas di atasnya juga ikut dikonstruksi dengan memanggil kata kunci super, sedangkan kelas-kelas yang lebih bawah tidak ikut dikonstruksi.