Warisan di Java (dengan Contoh)

Apa itu Warisan?

Warisan adalah mekanisme di mana satu kelas memperoleh properti kelas lain. Misalnya, seorang anak mewarisi sifat-sifat orang tuanya. Dengan pewarisan, kita dapat menggunakan kembali field dan metode dari kelas yang ada. Oleh karena itu, pewarisan memfasilitasi Penggunaan Kembali dan merupakan konsep penting dari OOP.

Apa itu Warisan dalam Java?

Java Warisan adalah mekanisme di mana satu kelas memperoleh properti kelas lain. Di dalam Java, ketika ada hubungan “Is-A” antara dua kelas, kami menggunakan Warisan. Kelas induk disebut kelas super dan kelas yang diwariskan disebut subkelas. Kata kuncinya extends digunakan oleh subkelas untuk mewarisi fitur-fitur dari superkelas. Pewarisan penting karena mengarah pada penggunaan ulang kode.

Java Sintaks Warisan:

class subClass extends superClass  
{  
   //methods and fields  
} 

Jenis-jenis Warisan dalam Java

Berikut adalah berbagai jenis warisan di Java:

  1. Warisan Tunggal
  2. Warisan Ganda
  3. Warisan Bertingkat
  4. Warisan Hirarkis
  5. Warisan Hibrid

1. Warisan Tunggal:

Dalam Single Inheritance, satu kelas memperluas kelas lainnya (hanya satu kelas).

Warisan Tunggal di Java
Warisan Tunggal

Dalam diagram di atas, Kelas B hanya merupakan perluasan dari Kelas A. Kelas A adalah kelas super dan Kelas B adalah Subkelas.

2. Pewarisan Berganda:

Warisan Berganda adalah salah satu warisan dalam Java tipe di mana satu kelas memperluas lebih dari satu kelas. Java tidak mendukung pewarisan berganda.

Banyak Warisan di Java
Java Warisan Ganda

Sesuai diagram di atas, Kelas C merupakan perluasan dari Kelas A dan Kelas B keduanya.

3. Pewarisan Bertingkat:

Dalam Warisan Bertingkat, satu kelas dapat mewarisi dari kelas turunan. Oleh karena itu, kelas turunan menjadi kelas dasar untuk kelas baru.

Warisan Bertingkat di Java
Warisan Bertingkat

Seperti yang ditunjukkan pada diagram, Kelas C adalah subkelas dari B dan B adalah subkelas dari Kelas A.

4. Pewarisan Hirarkis:

Dalam Pewarisan Hirarkis, satu kelas diwarisi oleh banyak subkelas.


Pewarisan Hirarkis dalam Java
Warisan Hirarkis

Seperti contoh di atas, Kelas B, C, dan D mewarisi kelas A yang sama.

5. Pewarisan Hibrida:

Pewarisan hibrid merupakan salah satu jenis pewarisan Java yang merupakan kombinasi pewarisan Tunggal dan Berganda.


Warisan Hibrid
Warisan Hibrid

Sesuai contoh di atas, semua anggota Kelas A yang bersifat publik dan dilindungi diwarisi ke dalam Kelas D, pertama melalui Kelas B dan kedua melalui Kelas C.

Catatan: Java tidak mendukung warisan hibrida/berganda

Warisan di Java Example

Berikut adalah contoh pewarisan Java:


Contoh Java Warisan
Java Contoh Warisan

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 anggota data atau metode apa pun dari kelas induk. Kata kunci super dapat digunakan di variabel, metode dan tingkat konstruktor.

sintaks:

super.<method-name>();

Juga Periksa: - Kata Kunci ini di Java: Apa itu & Bagaimana cara menggunakan dengan Contoh

Pelajari Warisan di 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 giro (juga dikenal sebagai rekening giro).

Warisan di OOP

Mari kita bandingkan dan pelajari bagaimana kita dapat melakukan pendekatan coding dari a perspektif pemrograman terstruktur dan berorientasi objek.

Pendekatan struktural: Dalam pemrograman terstruktur, kita akan membuat dua fungsi –

  1. Satu untuk ditarik
  2. Dan yang lainnya untuk tindakan deposit.

Karena cara kerja fungsi-fungsi ini tetap sama di seluruh akun.

Warisan di OOP

pendekatan OOP: Saat menggunakan Ups pendekatan pemrograman. Kami akan membuat dua kelas.

  • Masing-masing memiliki implementasi fungsi deposit dan penarikan.
  • Ini akan menyia-nyiakan kerja ekstra.

Warisan di OOP

Permintaan Perubahan di Perangkat Lunak

Kini terjadi perubahan spesifikasi kebutuhan untuk sesuatu yang umum terjadi di industri perangkat lunak. Anda seharusnya menambahkan fungsionalitas Rekening Perbankan istimewa dengan Fasilitas Cerukan. Sebagai latar belakang, cerukan adalah fasilitas di mana Anda dapat menarik jumlah lebih dari saldo yang tersedia di rekening Anda.

Permintaan Perubahan di Perangkat Lunak

Pendekatan struktural: Dengan menggunakan pendekatan fungsional, saya harus memodifikasi fungsi penarikan saya, yang sudah diuji dan dijadikan dasar. Dan menambahkan metode seperti di bawah ini akan menangani persyaratan baru.

Permintaan Perubahan di Perangkat Lunak

Pendekatan OOP: Dengan menggunakan pendekatan OOP, Anda hanya perlu menulis kelas baru dengan implementasi fungsi penarikan yang unik. Kami tidak pernah menyentuh potongan kode yang diuji.

Permintaan Perubahan di Perangkat Lunak

Permintaan Perubahan Lainnya

Bagaimana jika persyaratannya berubah lebih lanjut? Ingin menambah rekening kartu kredit dengan persyaratan deposito uniknya sendiri.

Permintaan Perubahan Ganda dalam persyaratan Perangkat Lunak

Pendekatan struktural: Dengan menggunakan pendekatan struktural, Anda harus mengubah lagi bagian kode deposit yang diuji.

Pendekatan struktural terhadap Permintaan Perubahan Berganda dalam Perangkat Lunak

pendekatan OOP: Namun dengan menggunakan pendekatan berorientasi objek, Anda hanya akan membuat kelas baru dengan implementasi metode deposit yang unik (disorot merah pada gambar di bawah). Jadi meskipun pemrograman struktural tampak seperti pendekatan yang mudah pada awalnya, OOP menang dalam jangka panjang.

Pendekatan OOP terhadap Permintaan Perubahan Berganda

Keuntungan Warisan di OOP

Namun ada yang berpendapat bahwa di semua kelas, Anda memiliki potongan kode yang berulang.

Untuk mengatasi hal ini, Anda membuat kelas induk, katakanlah “akun” dan menerapkan fungsi yang sama untuk deposit dan withdraw. Dan membuat kelas anak mewarisi kelas “akun”. Sehingga mereka akan memiliki akses ke fungsi withdraw dan deposit di kelas akun. Fungsi-fungsi tersebut tidak perlu diterapkan secara individual. Ini Warisan di Jawa. .

Keuntungan Warisan di OOP

Keuntungan Warisan di OOP