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