Pewarisan adalah konsep sentral dalam pemrograman berorientasi objek (OOP) dan sering dianggap sebagai salah satu landasan untuk meningkatkan efisiensi. Dalam tutorial ini, kamu akan memperdalam pemahaman tentang pewarisan dalam Java. Kamu akan belajar bagaimana menangani modifikator akses, menggunakan konstruktor, dan peran enkapsulasi dalam pewarisan.
Temuan Utama
- Pewarisan memungkinkan untuk mewarisi atribut dan metode dari sebuah kelas.
- Modifikator akses private membatasi akses ke variabel atau metode, sementara protected memungkinkan akses yang lebih luas dalam kelas yang mewarisi dari kelas induk.
- Konstruktor harus dipanggil di kelas turunan untuk menginstansiasi objek dengan benar.
- Metode antarmuka dapat digunakan secara umum ketika ada beberapa kelas spesifik.
Panduan Langkah-demi-Langkah
Modifikator Akses: protected vs. private
Jika kamu mendeklarasikan sebuah variabel (misalnya warna) sebagai protected dalam kelas seperti Kendaraan, maka kamu bisa langsung menggunakan variabel ini dalam kelas turunan (misalnya Mobil). Namun, jika kamu mendeklarasikan variabel sebagai private, kamu tidak dapat mengaksesnya secara langsung dalam kelas turunan.

Ini berarti bahwa akses ke variabel private hanya dapat dilakukan melalui Setter dan Getter.
Contoh menunjukkan bahwa kita harus menggunakan setWarna dan getWarna untuk mengakses variabel private warna.

Jika variabel dideklarasikan sebagai protected, kamu dapat langsung mengaksesnya dalam kelas Mobil dan mengubah nilainya.
Penggunaan Konstruktor dalam Pewarisan
Dalam mendefinisikan kelas turunan, kamu harus memastikan bahwa konstruktor kelas induk dipanggil dengan benar.

Ini memastikan bahwa warna diinisialisasi dengan benar saat membuat objek Mobil.

Pastikan kamu mendefinisikan konstruktormu di kelas turunan yang sesuai untuk meneruskan parameter kelas induk dengan tepat.
Mewarisi dan Memanggil Metode
Dua kelas, Kendaraan dan Mobil, memungkinkanmu untuk menggunakan variabel dan metode umum. Jika kamu mendefinisikan sebuah metode dalam Kendaraan, kamu juga dapat menggunakan metode tersebut di Mobil tanpa perlu menuliskannya kembali.

Di sini, metode tampilkanWarnaKendaraan dipanggil dan mengeluarkan nilai warna yang disediakan oleh metode getWarna.
Pembatasan Akses ke Metode
Jika kamu mencoba memanggil metode di kelas turunan yang tidak tersedia untuk kelas tersebut, kamu akan mendapatkan kesalahan kompilasi. Dalam contoh kita, objek Kendaraan harus diberikan untuk memanggil metode getWarna.

Ini secara praktis berarti bahwa kamu perlu memastikan bahwa metode tersebut sesuai dengan tipe datamu sebelum memanggilnya. Jadi kamu bisa memberikan sebuah Sepeda, sebuah Mobil, atau keduanya ke sebuah metode yang hanya mengharapkan objek Kendaraan.
Contoh Memanggil Metode Instansi dalam Konteks Statis
Perhatikan bahwa dalam metode statis (static), kata kunci this tidak dapat digunakan, karena tidak merujuk pada instansi tertentu. Dalam kasus seperti itu, kamu mungkin ingin menggunakan metode lain atau merestrukturisasi logika.

Melalui pemanggilan ini, warna untuk objek mobilSaya ditampilkan dengan benar.
Ringkasan - Pewarisan dalam Java: Panduan untuk Pemula
Pewarisan adalah konsep penting dalam pemrograman dengan Java, yang membantumu untuk memodularisasi dan menggunakan kembali kode. Dalam tutorial ini, kamu telah mempelajari dasar-dasar modifikator akses, konstruktor, dan pemanggilan metode terkait pewarisan.
Pertanyaan yang Sering Diajukan
Bagaimana saya bisa mengakses variabel private di kelas turunan?Pada variabel private di kelas turunan tidak bisa diakses secara langsung. Gunakan metode Getter dan Setter.
Apa perbedaan antara protected dan private?protected memungkinkan akses di kelas turunan dan dalam paket yang sama, sementara private hanya dapat diakses di dalam kelas itu sendiri.
Apakah saya harus mendefinisikan konstruktor di kelas turunan?Ya, jika kamu telah menyesuaikan konstruktor kelas induk, kamu juga harus mendefinisikan konstruktor di kelas turunan dengan tepat.
Bisakah saya menimpa metode dari kelas induk di kelas turunan secara bebas?Ya, kamu dapat menimpa metode yang tidak ditandai dengan final atau static di kelas turunan untuk mengimplementasikan perilaku spesifik.