Pin It

Di artikel Memahami Konsep Turunan (Inheritance) Di Java dan Memahami Konsep Polimorfisme (Polymorphism) Di Java, Anda diperkenalkan pada konsep turunan dan keterkaitannya dengan konsep lain di pemrograman Java. Dalam hirarki turunan, obyek subclass dapat diberikan ke variabel dengan tipe superclass. Setiap instance (obyek) subclass adalah juga instance (obyek) dari superclass. Pengkonversian obyek hanya dapat dilakukan apabila obyek-obyek tersebut berasal dari kelas yang berada dalam hirarkhi turunan. Anda dapat menggunakan operator instanceof untuk mengetahui keterkaitan antara obyek sebuah kelas dalam hirarkhi turunan dengan kelas lainnya.

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

// 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 hirarki turunan kelas Java

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

// 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
}

Saat 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.

Operator instanceof dalam hirarki turunan kelas Java

Baca artikel terkait lainnya: