Banner Java

Memahami Konsep Turunan (Inheritance) Di Java

Inheritance (turunan) merupakan salah satu konsep penting dalam pemrograman berorientasi obyek. Turunan memperbolehkan penggunaan kelas yang sudah ada sebagai superclass di dalam mendefinisikan kelas turunannya. Kelas turunan (subclass) akan mewarisi (inherit) data field (properti atau atribut) dan metoda terakses (accessible methods) yang dimiliki oleh superclass. Superclass akan mempunyai sifat lebih umum (general), sedangkan kelas turunannya akan lebih spesifik. Umumnya, kelas turunan mempunyai data field dan metoda tambahan selain data field dan metoda yang diwarisi dari superclass.

Penekanan konsep turunan adalah penggunaan kelas yang sudah ada (reusability). Konsep turunan dapat mempersingkat waktu pendefinisian subclass. Sekali sebuah subclass didefinisikan, kelas tersebut dapat menjadi superclass untuk subclass yang lain. Kelas Object berada di puncak teratas dalam hirarkhi kelas di Java. Semua kelas, langsung maupun tidak langsung, merupakan turunan dari kelas Object. Salah satu metoda istimewa yang dimiliki oleh kelas Object adalah metoda toString yang merupakan string representation dari sebuah obyek.

Superclass dan Subclass.

Kelas atas atau kelas asal sering disebut dengan superclass, base class atau parent class, sedangkan kelas turunannya sering disebut dengan child class, derived class atau extended class. Di artikel Mendefinisikan Kelas Java terdapat contoh program sederhana kelas PersegiPanjang yang hasil kompilasinya (PersegiPanjang.class) diletakkan di direktori (paket) c:\filejava\javaapp\kelas\bangun\datar.

Persegi panjang merupakan bangun datar yang mempunyai sisi panjang dan lebar sebagai data field. Dari sisi panjang dan lebar, dapat ditentukan keliling dan luas persegi panjang. Misalnya, Anda ingin membuat kelas baru yaitu kelas Balok. Balok merupakan bangun ruang yang mempunyai sisi panjang, lebar dan tinggi sebagai data field. Dengan sisi panjang, lebar dan tinggi, dapat ditentukan pula volume balok. Untuk memudahkan dan mempersingkat pendefinisian kelas Balok, Anda dapat menggunakan atau memanfaatkan kelas PersegiPanjang sebagai superclass dari subclass Balok.

Kata kunci extends.

Kata kunci extends digunakan untuk mendeklarasikan kelas turunan (subclass) dari kelas atasnya (superclass). Dengan kata kunci extends, kelas turunan akan mewarisi data field dan metoda yang dimiliki oleh kelas di atasnya. Sebenarnya tidak semua data field dan metoda akan diwariskan kepada kelas turunnannya. Data field dan metoda yang dideklarasikan dengan modifier private, tidak diwariskan kepada kelas turunannya. Berikut ini adalah sintak untuk mendeklarasikan kelas turunan:

   public class nama-subclass extends nama-superclass {
      // data dan metoda
   }

Subclass dan superclass di paket berbeda.

Kelas turunan dapat didefinisikan lebih cepat dengan memanfaatkan kelas yang ada. Apabila definisi kelas turunan berasal dari superclass yang berada di paket berbeda, Anda harus mengimpor kelas tersebut terlebih dahulu dengan menggunakan kata kunci import. Apabila superclass berada di paket yang sama dengan subclass yang sedang didefinisikan, Anda tidak perlu untuk mengimport superclass. Kelas sebaiknya dikelompokkan menurut jenis dan fungsinya dan diletakkan di nama paket yang menggambarkan kelas tersebut.

Sebagai contoh, kelas PersegiPanjang di artikel Mendefinisikan Kelas Java merupakan bangun datar dan diletakkan di direktori c:\filejava\javaapp\kelas\bangun\datar. Apabila Anda ingin mendefinisikan kelas baru (misalnya subclass Balok) yang merupakan turunan dari kelas PersegiPanjang, sebaiknya kelas tersebut diletakkan di direktori (paket) berbeda, misalnya c:\filejava\javaapp\kelas\bangun\ruang karena subclass Balok merupakan bangun ruang yang berbeda dengan bangun datar. Dengan memanfaatkan paket (package) untuk mengkategorikan atau mengkelompokkan kelas, Anda akan lebih gampang menemukan kelas yang akan digunakan. Paket juga memungkinkan Anda untuk mendefinisikan kelas dengan nama sama. Namun demikian, ini bukan berarti bahwa kelas yang masuk kategori bagun datar dan bagun ruang benar-benar harus diletakkan dalam paket berbeda. Anda dimungkinkan untuk meletakkan kelas apapun dalam satu paket tanpa harus mengkategorikannya ke dalam paket berbeda.

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.