Memahami konsep turunan atau pewarisan (inheritance) di Java

Memahami Konsep Turunan (Inheritance) Di Java

Inheritance (turunan atau pewarisan) adalah salah satu konsep penting dalam OOP (Object Oriented Programming | pemrograman berorientasi obyek). Konsep turunan membolehkan penggunaan kelas yang sudah ada dijadikan sebagai superclass untuk mendefinisikan kelas baru turunannya.

Baca artikel Konsep Turunan (Inheritance) Di Java Melalui Contoh Program

Kelas turunan (subclass) akan mewarisi data field (properti atau atribut) serta metoda terakses (accessible methods) yang dimiliki superclass. Superclass akan memiliki sifat lebih umum (general), sedangkan kelas turunan 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 menggunakan kelas yang sudah ada (reusability). Konsep turunan dapat mempersingkat waktu dalam mendefinisikan kelas turunan (subclass). Sekali sebuah subclass didefinisikan, kelas tersebut dapat menjadi superclass untuk subclass yang lain.

Kelas Object berada di puncak teratas dalam hierarkhi kelas Java. Semua kelas, langsung maupun tidak langsung, merupakan turunan dari kelas Object. Salah satu metoda istimewa yang dimiliki oleh kelas Object dan diwariskan ke kelas turunannya (subclass) adalah metoda toString yang merupakan representasi string dari sebuah obyek.

1. 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 mendefinisikan kelas baru PersegiPanjang.

Persegi panjang adalah bangun datar yang mempunyai sisi panjang dan lebar sebagai data field. Dari data field panjang dan lebar ini, dapat ditentukan keliling dan luas dari persegi panjang.

Misalnya, Anda ingin membuat kelas baru yaitu kelas Balok. Balok adalah bangun ruang yang mempunyai sisi panjang, lebar dan tinggi sebagai data field. Dari data field panjang, lebar dan tinggi, dapat ditentukan volume balok. Untuk memudahkan dan mempersingkat definisi kelas Balok, Anda dapat menggunakan atau memanfaatkan kelas PersegiPanjang sebagai superclass dari subclass Balok.

2. 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 menggunakan modifier private, tidak diwariskan kepada kelas turunannya. Berikut ini adalah sintaksis untuk mendeklarasikan kelas turunan (subclass) dari superclass:

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

3. Subclass dan superclass di paket berbeda.

Kelas turunan dapat didefinisikan lebih cepat dengan memanfaatkan kelas yang ada. Bila definisi kelas turunan berasal dari superclass yang berada di paket berbeda, Anda harus mengimpor kelas tersebut terlebih dahulu menggunakan kata kunci import.

Bila superclass berada di paket yang sama dengan subclass yang didefinisikan, Anda tidak perlu 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 adalah bangun datar dan diletakkan di direktori (paket) c:\filejava\javaapp\kelas\bangun\datar. Bila Anda mendefinisikan kelas baru, misalnya saja kelas Balok yang merupakan turunan dari kelas PersegiPanjang, sebaiknya kelas tersebut diletakkan di direktori yang berbeda, misalnya c:\filejava\javaapp\kelas\bangun\ruang karena subclass Balok adalah bangun ruang yang berbeda dengan bangun datar.

Dengan memanfaatkan paket (package) untuk mengkategorikan atau mengkelompokkan kelas-kelas Java, Anda akan lebih mudah menemukan kelas yang ingin 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.

SUKAI DAN BAGIKAN ARTIKEL INI:
Pin It