11 Aturan Inheritance Pada Java Serta Contohnya

Hallo gan, setelah anda sebelumnya mengetahui apa itu inheritance juga konsep-konsep dasarnya yang perlu diketahui, maka kali ini akan dibahas mengenai 11 aturan inheritance pada Java beserta dengan contoh-contohnya sehingga anda akan mudah mengaplikasikannya pada dan memahaminya ketika melakukan coding Java.

inheritance-pada-java-contoh

 

Aturan dan Contoh Inheritance Java

Berikut ini adalah aturan dan contoh pada inheritance yang perlu anda ketahui.

1. Semua class inherit dari class objek secara langsung ataupun tidak langsung

Setiap class yang dibuat pada Java inherit dari class Objek. Meskipun tidak dinyatakan secara eksplisit.

Contoh:

Secara implisit:

2. Dalam inheritance, suatu contructor tidak dapat diwariskan

Constructor dari superclass tidak dapat diwariskan kepada subclass, namun bisa dipanggil dengan menggunakan keyword super().

Bila sebuah constructor secara eksplisit tidak memanggil constructor dari superclass, maka compiler secara otomatis akan memanggil constructor tanpa argumen secara implisit.

Contoh:

Tapi jika superclass memiliki constructor dengan argumen tertentu dan subclass tidak memanggil constructor tersebut secara ekplisit maka compile error akan terjadi.

Contoh:

Contoh kode berikut ini akan menimbulkan compile error:

3. Acces modifier pada inheritance

Pada inheritance, member dengan acces modifier private tidak dapat diwariskan. Sedangkan member default dapat diwariskan asalkan berada dalam package yang sama, jadi di luar itu tidak dapat diwariskan.

Untuk member protected hanya dapat diakses oleh subclass melalui inheritance baik itu pada package yang sama ataupun berbeda. Terakhir adalah member public yang dapat diwariskan di mana saja.

4. Mengakses member dari superclass

Untuk mengakses member dari superclass maka keyword super dapat digunakan.

Contoh:

Bisa dilihat baik itu superclass ataupun subclass memiliki method yang sama yaitu bergerak(), ini adalah overriding. Jadi class Mobil dapat memanggil method bergerak milik class Kendaraan dengan keyword super().

5. Referensi dan deklarasi objek

Ini adalah bagian yang menarik dari inheritance dimana referensi dari superclass bisa menjadi referensi objek dari subclass.

Perhatikan contoh berikut ini:

Aturannya adalah referensi objek superclass yang berada disebelah kiri bisa menjadi referensi untuk sub type yang berada disebelah kanan.

Selanjutnya, bila dilanjutkan dengan pemanggilan method:

Ketika objek memanggil method milik superclass maka hal ini bisa dilakukan, seperti pada kendaraan.bergerak(). Namun, ketika subclass memiliki method baru, maka method tersebut tidak bisa dipanggil melalui referensi dari superclass, seperti kendaraan.injakGas().

6. Multi inheritance pada interface

Dalam Java, multi inheritance pada interface diizinkan untuk dilakukan. Interfaces itu sendiri merupakan 100% class abstract.

Contoh:

Hal di atas bisa dilakukan karena interfaces tidak memiliki method yang konkrit sehingga tidak menimbulkan kerancuan.

7. Tidak boleh multi inheritance pada class

Java tidak membolehkan suatu class inherit pada dua class atau lebih secara langsung. Ini dikarenakan jika dilakukan akan menimbulkan keraguan. Dan jika dilakukan akan menimbulkan masalah yang dikenal dengan Deadly Diamond of Death.

8. Aturan ketika suatu interface inherit dari interface lainnya

Ketika suatu interface adalah inherit dari interface lainnya maka sub interface tersebut mewarisi semua method dari super interface. Kemudian, sub interface itu memiliki kebebasan apakah akan memakai semua method tersebut atau tidak.

Contoh:

9. Inheritance dan interface pada class

Dalam Java, ketika class inherit dari class lainnya, maka secara bersamaan juga bisa mengimplementasikan interface.

Contoh:

10. Aturan pada acces modifier

Acces modifier public dan protected dari member superclass akan diwariskan pada subclass ketika inheritance (extends) dilakukan.

Sedangkan untuk member class dengan acces modifier default hanya akan diwariskan ketika berada dalam package yang sama.

11. Inheritance pada class abstract dan interface

Ketika suatu class abstract mengimplementasikan interface maka class abstract tersebut tidak perlu meng-override method dari interface tersebut.

Tapi, class konkrit yang pertama kali inherit dari class abstract tersebut harus meng-override method-method tersebut.

Contoh:

Pada contoh di atas class KendaraanRodaDua adalah class abstract.  Jadi class ini bisa mengimplementasikan 2 method dari interface dapatDigerakkan, yaitu method startMesin() dan stopMesin().

Oleh karena itu, 2 method lainnya yaitu berhenti() dan bergerak() dari interface itu harus di implementasikan pada class konkrit yaitu class Motor.

Tapi, ketika class abstract tidak mengimeplementasikan sama sekali method dari interface maka class konkrit yang pertama kali inherit dari class abstract tersebut harus mengimplementasikan semua method dari interface tersebut.

Sebagai tambahan yang juga penting diketahui, ketika suatu class konkrit (non-abstract) mengimplementasikan interface maka class tersebut wajib mengimplentasikan seluruh method-method dari interface tersebut.

Arti mengimplementasikan adalah memberikan method dari interface itu body karena semua method-method yang terdapat pada interface adalah method abstract yang tidak memiliki body method.

Demikianlah penjelasan mengeni aturan-aturan pada inheritance beserta dengan contohnya. Semoga bisa membantu anda yang sedang memahami topik yang serupa ketika belajar Java.

Be the first to comment

Leave a Reply

Your email address will not be published.


*