Banner Java

Memahami Konsep Konstruktor Berjenjang (Constructor Chaining)

Dimungkinkan sebuah subclass merupakan turunan dari sebuah superclass dan superclass itu sendiri mungkin merupakan 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 akan 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 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 merupakan 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.

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

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

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

Konsep konstruktor berjenjang di Java

Baca artikel terkait lainnya:

Untuk memperbaiki mutu konten, Anda dapat berpartisipasi dengan cara melaporkan apabila menemukan kesalahan ketik, kata-kata rangkap, redaksi kurang pas (jelas), gambar pendukung tidak ada dan sebagainya melalui form Kontak Kami untuk mendapatkan perbaikan. Terima kasih atas kerjasamanya.

Hindro HindriantoHindro adalah pendiri sekaligus admin termasmedia.com dan topikit.com, blog online yang mengulas teknologi informasi. Dunia web mulai ditekuni tahun 2012 dengan mempelajari CMS Joomla dan Wordpress. Beberapa buku yang sekarang dipelajari antara lain PHP, HTML5, ASP.NET 4.5, JavaScript, CSS3, MySQL, Adobe Dreamweaver, Adobe Photoshop dan Adobe Flash.