Warisan di Java OOP:Pelajari Semua Jenis dengan Contoh
Apa itu Warisan?
Warisan adalah mekanisme di mana satu kelas memperoleh properti dari kelas lain. Misalnya, seorang anak mewarisi sifat-sifat orang tuanya. Dengan pewarisan, kita dapat menggunakan kembali bidang dan metode kelas yang ada. Oleh karena itu, pewarisan memfasilitasi Reusability dan merupakan konsep penting OOP.
Dalam tutorial ini, Anda akan belajar-
Jenis Warisan
Warisan di Jawa
Contoh Warisan Java
Kata Kunci Super
Pelajari Warisan dalam OOP dengan Contoh
Jenis Warisan
Berikut adalah berbagai jenis pewarisan di Java:
Warisan Tunggal:
Dalam Warisan Tunggal, satu kelas memperluas kelas lain (hanya satu kelas).
Pada diagram di atas, Kelas B hanya memperluas Kelas A. Kelas A adalah kelas super dan Kelas B adalah Sub-kelas.
Beberapa Warisan:
Multiple Inheritance adalah salah satu pewarisan pada tipe Java dimana satu kelas memperluas lebih dari satu kelas. Java tidak mendukung pewarisan berganda.
Sesuai diagram di atas, Kelas C memperluas Kelas A dan Kelas B keduanya.
Warisan Multilevel:
Dalam Multilevel Inheritance, satu kelas dapat mewarisi dari kelas turunan. Oleh karena itu, kelas turunan menjadi kelas dasar untuk kelas baru.
Seperti yang ditunjukkan pada diagram Kelas C adalah subclass dari B dan B adalah subclass dari Kelas A.
Warisan Hirarkis:
Dalam Hierarchical Inheritance, satu kelas diwarisi oleh banyak sub kelas.
Sesuai contoh di atas, Kelas B, C, dan D mewarisi kelas A yang sama.
Warisan Hibrida:
Hybrid inheritance merupakan salah satu tipe inheritance di Java yang merupakan kombinasi dari Single dan Multiple inheritance.
Sesuai contoh di atas, semua anggota Kelas A publik dan yang dilindungi diwarisi ke Kelas D, pertama melalui Kelas B dan kedua melalui Kelas C.
Catatan: Java tidak mendukung hybrid/Multiple inheritance
Warisan Di Jawa
Warisan Java adalah mekanisme di mana satu kelas memperoleh properti dari kelas lain. Di Java, ketika ada hubungan "Is-A" antara dua kelas, kami menggunakan Warisan. Kelas induk disebut kelas super dan kelas yang diwarisi disebut subkelas. Kata kunci extends digunakan oleh subkelas untuk mewarisi fitur kelas super.
Warisan penting karena mengarah pada penggunaan kembali kode.
Sintaks Warisan Java:
class subClass extends superClass
{
//methods and fields
}
Contoh Warisan Java
Berikut adalah contoh pewarisan dalam Java:
Contoh Warisan Java
class Doctor {
void Doctor_Details() {
System.out.println("Doctor Details...");
}
}
class Surgeon extends Doctor {
void Surgeon_Details() {
System.out.println("Surgen Detail...");
}
}
public class Hospital {
public static void main(String args[]) {
Surgeon s = new Surgeon();
s.Doctor_Details();
s.Surgeon_Details();
}
}
Kata Kunci Super
Kata kunci super mirip dengan kata kunci “ini”.
Kata kunci super dapat digunakan untuk mengakses setiap anggota data atau metode dari kelas induk.
Kata kunci super dapat digunakan pada tingkat variabel, metode, dan konstruktor.
Sintaks:
super.<method-name>();
Pelajari Warisan dalam OOP dengan Contoh
Pertimbangkan aplikasi perbankan yang sama dari contoh sebelumnya.
Kita seharusnya membuka dua jenis rekening yang berbeda, satu untuk tabungan dan satu lagi untuk memeriksa (juga dikenal sebagai saat ini).
Mari kita bandingkan dan pelajari bagaimana kita dapat mendekati coding dari perspektif pemrograman terstruktur dan berorientasi objek.
Pendekatan struktural :Dalam pemrograman terstruktur, kita akan membuat dua fungsi –
Satu untuk ditarik
Dan yang lainnya untuk tindakan setoran.
Karena cara kerja fungsi-fungsi ini tetap sama di seluruh akun.
Pendekatan OOP :Saat menggunakan pendekatan pemrograman OOP. Kami akan membuat dua kelas.
Masing-masing memiliki implementasi fungsi deposit dan withdraw.
Ini akan menjadi pekerjaan ekstra yang berlebihan.
Ubah Permintaan di Perangkat Lunak
Sekarang ada perubahan spesifikasi kebutuhan untuk sesuatu yang begitu umum di industri perangkat lunak. Anda diharapkan untuk menambahkan fungsi istimewa Rekening Perbankan dengan Fasilitas Cerukan. Sebagai latar belakang, cerukan adalah fasilitas di mana Anda dapat menarik jumlah lebih dari saldo yang tersedia di akun Anda.
Pendekatan struktural: Menggunakan pendekatan fungsional, saya harus memodifikasi fungsi penarikan saya, yang sudah diuji dan dijadikan dasar. Dan tambahkan metode seperti di bawah ini untuk menangani persyaratan baru.
Pendekatan OOP: Menggunakan pendekatan OOP, Anda hanya perlu menulis kelas baru dengan implementasi fungsi penarikan yang unik. Kami tidak pernah menyentuh bagian kode yang diuji.
Permintaan Perubahan Lain
Bagaimana jika persyaratan berubah lebih lanjut? Ingin menambahkan akun kartu kredit dengan persyaratan uniknya sendiri untuk setoran.
Pendekatan struktural: Dengan menggunakan pendekatan struktural, Anda harus mengubah kembali potongan kode setoran yang diuji.
Pendekatan OOP :Tetapi menggunakan pendekatan berorientasi objek, Anda hanya akan membuat kelas baru dengan implementasi unik dari metode deposit ( disorot merah pada gambar di bawah).
Jadi meskipun pemrograman struktural tampak seperti pendekatan yang mudah pada awalnya, OOP menang dalam jangka panjang.
Keuntungan Warisan dalam OOP
Tetapi orang mungkin berpendapat bahwa di semua kelas, Anda memiliki potongan kode yang berulang.
Untuk mengatasinya, Anda membuat kelas induk, katakan "akun" dan terapkan fungsi deposit dan penarikan yang sama. Dan membuat kelas anak mewarisi kelas "akun". Sehingga mereka akan memiliki akses ke fungsi penarikan dan deposit di kelas akun.
Fungsi-fungsi tersebut tidak diharuskan untuk diimplementasikan secara individual. Ini adalah Warisan di java. .