Inheritance atau bisa disebut sebagai pewarisan. Konsep Inheritance dalam pemrograman berorientasi objek memungkinkan suatu kelas bisa mewariskan atribut dan method kepada kelas lainnya atau sub kelas sehingga membentuk hirarki kelas. Pada inheritance, satu kelas dapat lebih dispesifikkan menjadi satu atau lebih sub-kelas. Sub-kelas akan mewarisi semua atribut dan method daripada super-kelasnya. Namun sub-kelas dapat memiliki atribut dan method lain yang spesifik kepada dirinya sendiri.
Sebagai contoh kita akan membuat kelas Bangun sebagai super kelas dan kelas Bangun2D dan Bangun3D sebagai sub kelasnya sesuai dengan class diagram di bawah ini.
Buat Kelas Bangun
public class Bangun { String nama; Bangun(String nama){ this.nama = nama; } public String getNama(){ return nama; } }
Buat sub kelas Bangun2D
public class Bangun2D extends Bangun{ int panjang; int lebar; int sisi; Bangun2D(String nama, int sisi){ super(nama); this.sisi = sisi; } Bangun2D(String nama, int panjang, int lebar){ super(nama); this.panjang = panjang; this.lebar = lebar; } public void hitungLuasPersegi(){ int luas = sisi * sisi; System.out.println("Luas : "+luas); } public void hitungLuasPersegiPanjang(){ int luas = panjang * lebar; System.out.println("Luas : "+luas); } public void hitungKelilingPersegi(){ int keliling = 4 * sisi; System.out.println("Keliling : "+keliling); } public void hitungKelilingPersegiPanjang(){ int keliling = 2 * (panjang + lebar); System.out.println("Keliling : "+keliling); } }
Buat sub kelas Bangun3D
public class Bangun3D extends Bangun2D{ int tinggi; Bangun3D(String nama, int sisi){ super(nama, sisi); } Bangun3D(String nama, int panjang, int lebar, int tinggi){ super(nama, panjang, lebar); this.tinggi = tinggi; } public void hitungVolumeKubus(){ int volume = sisi * sisi * sisi; System.out.println("Volume : "+volume); } public void hitungVolumeBalok(){ int volume = panjang * lebar * tinggi; System.out.println("Volume : "+volume); } }
Buat kelas mainBangun sebagai main kelasnya
public class mainBangun { public static void main(String[]args){ Bangun2D dua1 = new Bangun2D("Persegi", 5); System.out.println("Nama : "+dua1.getNama()); dua1.hitungLuasPersegi(); dua1.hitungKelilingPersegi(); System.out.println(); Bangun2D dua2 = new Bangun2D("Persegi Panjang", 2, 3); System.out.println("Nama : "+dua2.getNama()); dua2.hitungLuasPersegiPanjang(); dua2.hitungKelilingPersegiPanjang(); System.out.println("---------------------"); Bangun3D tiga1 = new Bangun3D("Kubus", 5); System.out.println("Nama : "+tiga1.getNama()); tiga1.hitungVolumeKubus(); System.out.println(); Bangun3D tiga2 = new Bangun3D("Balok", 2, 3, 4); System.out.println("Nama : "+tiga2.getNama()); tiga2.hitungVolumeBalok(); } }
Jalankan kelas mainBangun maka outputnya akan tampilkan hasil perhitungan kelas Bangun2D dan Bangun3D
Nama : Persegi Luas : 25 Keliling : 20 Nama : Persegi Panjang Luas : 6 Keliling : 10 --------------------- Nama : Kubus Volume : 125 Nama : Balok Volume : 24
Sekian dan Terima Kasih
Happy Coding :)
Tags:
Java