Konsep konstruktor berjenjang (constructor chaining) di Java

Memahami Konsep Konstruktor Berjenjang (Constructor Chaining) Di Java

Dimungkinkan sebuah subclass merupakan turunan dari sebuah superclass dan superclass itu sendiri mungkin juga turunan dari superclass lain yang lebih atas. Dengan jenjang seperti ini, subclass yang paling bawah akan memanggil konstruktor dari superclass di atasnya, konstruktor superclass tersebut juga memanggil konstruktor superclass lain yang lebih atas dan seterusnya.

Pemanggilan konstruktor kelas atasnya dapat berlapis-lapis yang akan membentuk suatu jenjang atau rantai konstruktor. Pemanggilan konstruktor kelas atasnya secara berlapis ini disebut dengan konstruktor berjenjang atau rantai konstruktor (constructor chaining).

Banyak kelas-kelas di Java merupakan kelas turunan dari beberapa lapis kelas di atasnya. Ditegaskan kembali dalam artikel Java kali ini bahwa semua kelas Java, baik yang ada di pustaka kelas Java (Java class library) maupun kelas yang Anda definisikan sendiri (user-defined classes), langsung maupun tidak langsung, merupakan turunan dari kelas Object. Kelas Object adalah akar dari semua kelas di Java dan berada di puncak teratas dalam hirarki kelas.

Berikut ini adalah contoh program Java yang menunjukkan pemanggilan kontruktor kelas atasnya secara berjenjang atau berantai. Program juga mengambarkan bahwa konstruktor dari superclass dikonstruksi terlebih dahulu sebelum konstruktor kelas turunannya.

 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
33
34
35
36
37
38
39
// Nama kelas : KelasA.java
// Menggambarkan pemanggilan konstruktor berjenjang
 
// Deklarasi kelas
public class KelasA extends KelasB {
 
   // Metoda main
   public static void main(String[ ] args) {
 
      // Anonymous object
      // Membuat obyek tanpa variabel acuan
      new KelasA();
   }
    
   public KelasA() {
      System.out.println("Konstruktor tanpa Argumen dari KelasA");
   }
}
 
class KelasB extends KelasC {
 
    public KelasB() {
      System.out.println("Konstruktor tanpa Argumen dari KelasB");
    }
}      
 
class KelasC extends KelasD {
 
    public KelasC() {
      System.out.println("Konstruktor tanpa Argumen dari KelasC");
    }
}
 
class KelasD {
 
    public KelasD() {
      System.out.println("Konstruktor tanpa Argumen dari KelasD");
    }
}

Konsep konstruktor berjenjang (constructor chaining) di Java

Baris nomor 12 adalah pernyataan untuk mengkonstruksi obyek kelas KelasA tanpa memberi acuan obyek tersebut ke variabel (anonymous object). Pengkontruksian obyek tersebut memanggil konstruktor tanpa parameter dari kelas KelasA. Karena kelas KelasA adalah subclass dari kelas KelasB, maka konstruktor tanpa parameter dari kelas KelasB dipanggil. Kelas KelasB adalah juga subclass dari kelas KelasC dan konstruktor tanpa parameter kelas KelasC dipanggil dan begitu seterusnya.

Anda dapat melihat bahwa setiap konstruktor baik di kelas KelasA, KelasB dan KelasC tidak ada pernyataan super() untuk memanggil konstruktor dari superclass. Kompiler Java secara otomatis meletakkan kata kunci super() untuk memanggil konstruktor tanpa parameter dari superclass. Sebaiknya, bila sebuah kelas memang ditujukan menjadi superclass untuk kelas lain, akan lebih baik bila kelas tersebut menyediakan konstruktor tanpa parameter untuk menghindari kemungkinan error.

SUKAI DAN BAGIKAN ARTIKEL INI:
Pin It