Pewarisan adalah salah satu konsep inti dari pemrograman berorientasi objek. Dalam pemrograman, kata warisan mewakili hubungan di mana kelas anak mengasumsikan keadaan dan perilaku kelas induk.
Tujuan pewarisan dalam pengembangan perangkat lunak adalah untuk memfasilitasi penggunaan kembali perangkat lunak yang aman dan andal. Salah satu manfaat utama menggunakan pewarisan adalah menghilangkan kode yang berlebihan dalam program Anda.
Bagaimana Warisan Bekerja
Ide di balik pewarisan adalah bahwa banyak kelas atau objek memiliki beberapa set atribut dan metode yang sama. Oleh karena itu, dalam semangat menghasilkan perangkat lunak yang andal, kelas baru sekarang dapat mengambil dari kelas terkait yang sudah ada sebelumnya dan jika perlu memperluas status dan perilaku yang ada.
Contoh dunia nyata tentang cara kerja warisan adalah dengan mempertimbangkan buah-buahan. Ini adalah label luas yang berfungsi untuk merangkum berbagai item yang berbeda.
Apel adalah buah dan begitu pula jeruk. Namun, jeruk bukanlah apel, jadi Anda tidak akan memiliki buah-buahan sebagai salah satu stok barang Anda jika Anda memiliki toko. Mungkin Anda bisa memiliki bagian buah-buahan di inventaris Anda, dan di bawah bagian itu, Anda akan memiliki item yang lebih spesifik seperti apel dan jeruk.
Begitulah cara kerja warisan.
Menggunakan Warisan di Java
Warisan dapat digunakan dalam bahasa pemrograman apa pun yang menggunakan ekstensi paradigma pemrograman berorientasi objek. Namun, cara yang tepat di mana pewarisan digunakan bergantung pada bahasa pemrograman tertentu.
Sebagai contoh, C ++ juga merupakan bahasa pemrograman berorientasi objek. C ++ mendukung apa yang disebut multiple inheritance, sedangkan Java hanya mendukung single inheritance.
Artinya, di Java kelas induk dapat memiliki banyak kelas anak, tetapi setiap kelas anak hanya dapat memiliki satu kelas induk (pewarisan tunggal). Namun, ada cara untuk mencapai multiple inheritance tidak langsung di Java, dengan membuat hubungan kakek-nenek, orang tua, dan anak.
Membuat Kelas Parent di Java
Proses pemilihan kelas induk dari dokumen kebutuhan perangkat lunak dikenal sebagai analisis berorientasi objek. Selama proses ini, frasa "adalah" sering digunakan untuk mengidentifikasi kemungkinan hubungan warisan. Menggambar dari contoh kami di atas, Anda harus dapat melihat bahwa buah akan menjadi kelas induk kami.
Contoh Kelas Induk Buah
kelas publik Buah {
// Deklarasi Variabel
benih tali yang dilindungi;
String skinColor yang dilindungi;
rasa tali yang dilindungi;
// Pembuat Default
Buah publik () {
benih = "";
skinColor = "";
rasa = "";
}
// Pembuat Utama
Buah publik (Biji benang, Warna kulit benang, Rasa benang) {
this.seed = seed;
this.skinColor = skinColor;
this.taste = rasa;
}
// getter dan setter
public String getSeed () {
benih kembali;
}
public void setSeed (String seed) {
this.seed = seed;
}
public String getSkinColor () {
kembali skinColor;
}
public void setSkinColor (String skinColor) {
this.skinColor = skinColor;
}
public String getTaste () {
rasa kembali;
}
public void setTaste (String taste) {
this.taste = rasa;
}
// metode makan
public void makan () {
// kode umum tentang cara makan buah
}
// metode jus
jus kekosongan publik () {
// kode umum tentang cara membuat jus buah
}
}
Salah satu aspek yang paling menonjol dari kelas induk di atas adalah pengubah akses yang digunakan dengan setiap deklarasi variabel. Pengubah akses "dilindungi" sangat ideal untuk digunakan di kelas induk karena mencegah kelas non-anak mendapatkan akses ke atribut data kelas induk.
Lebih jauh di bawah kode Anda diperkenalkan dengan konstruktor, getter, dan setter yang merupakan blok penyusun umum untuk setiap kelas Java. Terakhir, Anda akan diperkenalkan pada dua metode (jus dan makan) yang dibuat di kelas induk program kami karena metode tersebut berlaku universal untuk semua buah — semua buah dapat dimakan dan dibuat jus.
Membuat Kelas Anak di Java
Kelas anak biasanya disebut kelas khusus atau turunan karena mereka mewarisi status dan perilaku dari induk, dan sering kali menyesuaikan atribut ini agar lebih spesifik.
Melanjutkan contoh kami, Anda harus dapat melihat mengapa jeruk akan menjadi kelas anak yang cocok untuk kelas buah di atas.
Contoh Kelas Anak Oranye
kelas publik Jeruk memanjangkan Buah {
// deklarasi variabel
private int supremes;
// konstruktor default
publik Oranye () {
supremes = 0;
}
// konstruktor utama
public Orange (String seed, String skinColor, String taste, int supremes) {
super (biji, warna kulit, rasa);
this.supremes = supremes;
}
// getter dan setter
public int getsupremes () {
kembali supremes;
}
public void setsupremes (int supremes) {
this.supremes = supremes;
}
// metode makan
public void makan () {
// cara makan jeruk
}
// metode jus
jus kekosongan publik () {
// cara membuat jus dan jeruk
}
// metode kupas
public void peel () {
// cara mengupas jeruk
}
}
Ada perbedaan antara seperti apa deklarasi kelas Java biasa, dan apa yang kita miliki dalam kode kita di atas. Kata kunci "meluas" adalah yang digunakan di Java untuk memungkinkan pewarisan.
Dalam contoh kita di atas kelas anak (oranye) memperluas kelas induk (buah). Oleh karena itu, status dan perilaku kelas buah sekarang dapat diakses dan dimodifikasi oleh kelas jeruk.
Atribut unik yang dimiliki kelas oranye kami diidentifikasi dengan variabel name supremes (yang merupakan nama resmi untuk segmen kecil yang ditemukan pada jeruk). Di sinilah spesialisasi berperan; tidak semua buah memiliki supremes tetapi semua jeruk memilikinya, jadi logis untuk menyimpan variabel supremes untuk kelas jeruk.
Menambahkan metode "kupas" ke metode "makan" dan "jus" yang sudah ada sebelumnya juga masuk akal karena meskipun tidak semua buah dapat dikupas, jeruk sering kali dikupas.
Anda harus ingat bahwa jika kami tidak bermaksud untuk mengubah metode “makan” dan “jus” yang ada, kami tidak perlu memasukkannya ke dalam kelas jeruk kami. Metode di kelas oranye menimpa metode serupa di kelas buah. Jadi jika semua buah dimakan dan dibuat jus dengan cara yang sama, kita tidak perlu membuat metode ini di kelas jeruk.
Peran Pembangun Bermain dalam Warisan
Secara default, konstruktor kelas induk diwarisi oleh kelas anak. Oleh karena itu, jika objek kelas anak dibuat, ini berarti objek kelas induk juga dibuat secara otomatis.
Kembali ke contoh kita, setiap kali objek oranye baru dibuat, objek buah juga dibuat karena jeruk adalah buah.
Di balik layar, ketika objek kelas anak dibuat, konstruktor kelas induk dipanggil pertama diikuti oleh konstruktor kelas anak. Di kelas anak oranye kami di atas, jika objek oranye dibuat tanpa parameter apa pun, konstruktor kelas buah default kami akan dipanggil, diikuti oleh kontraktor kelas oranye default kami.
Metode "super" dalam konstruktor utama kita di atas diperlukan karena ia menetapkan bahwa konstruktor utama — dan bukan konstruktor default — kelas buah induk harus dipanggil setiap kali objek oranye dengan parameter adalah dibuat.
Sekarang Anda Bisa Menggunakan Warisan di Java
Dari artikel ini, Anda dapat mempelajari apa itu warisan, cara kerjanya, dan mengapa itu merupakan konsep penting dalam pemrograman. Anda sekarang dapat membuat hubungan warisan menggunakan bahasa pemrograman Java. Selain itu, Anda sekarang tahu cara mengatasi aturan pewarisan tunggal Java dengan membuat hubungan kakek-nenek.
Kredit Gambar: Andreas Wohlfahrt /Pexels
Mendapatkan pemrograman berorientasi objek dengan benar berarti Anda perlu tahu tentang pewarisan dan bagaimana hal itu dapat menyederhanakan pengkodean dan mengurangi kesalahan.
Baca Selanjutnya
- Pemrograman
- Jawa
- Pemrograman berorientasi objek
Kadeisha Kean adalah Pengembang Perangkat Lunak Tumpukan Penuh dan Penulis Teknis / Teknologi. Dia memiliki kemampuan berbeda untuk menyederhanakan beberapa konsep teknologi yang paling kompleks; memproduksi materi yang dapat dengan mudah dipahami oleh para pemula teknologi. Dia bersemangat menulis, mengembangkan perangkat lunak yang menarik, dan berkeliling dunia (melalui film dokumenter).
Berlangganan newsletter kami
Bergabunglah dengan buletin kami untuk mendapatkan tip teknologi, ulasan, ebook gratis, dan penawaran eksklusif!
Satu langkah lagi…!
Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan kepada Anda.