INHERITANCE DALAM BAHASA PEMROGRAMAN JAVA
Pewarisan (inheritance) adalah salah satu konsep terpenting dalam OOP dan mempunyai dampak langsung pada cara merancang dan menulis kelas. Pewarisan adalah proses penciptaan kelas baru dengan mewarisi karakteristik kelas yang telah ada, ditambah karakteristik unik kelas baru itu. Pewarisan adalah mekanisme ampuh yang memungkinkan kelas mewarisi fungsionalitas kelas yang telah ada. Untuk menciptakan kelas baru, kita hanya perlu menspesifikasikan cara kelas itu berbeda dari kelas yang telah ada. Pewarisan merupakan mekanisme yang ampuh dan alami untuk mengorganisasikan program.
Subkelas mewarisi semua metode dan
variable dan superkelasnya. Secara praktis berarti jika superkelas telah
mendefinisikan perilaku yang diperlukan, maka kita tidak perlu mendefinisi
ulang perilaku itu, kita cukup membuat kelas yang merupakan subkelas dari
superkelas yang dimaksud. Superkelas memberi perilaku nya ke subkelas dari
superkelas secara otomatis. Superkelas itu memperoleh perilaku
superkelas-superkelasnya diatasnya. Dengan demikian, subkelas akan merupakan
gabungan dari seluruh fitur kelas-kelas diatasnya di hirarki perwarisan
ditambah fitur kepunyaannya sendiri.
Dengan pewarisan, dimungkinkan
penciptaan klasifikasi berhirarki. Dengan pewarisan, kita dapat menciptakan
kelas umum yang mendefinisikan perilaku umum dari item-item yang saling
berhubungan. Kelas ini kemudian dapat diwarisi kelas-kelas yang lain. Kelas
lebih spesifik menambahkan hal-hal yang unik di kelas itu. Dalam terminologi
Java, kelas yang diwarisi disebut superclass, sedang kelas yang mewarisi
disebut subclass. Dengan demikian, subclass adalah versi spesial dari
superclass.
Java hanya memungkinkan pewarisan
tunggal (single inheritance). Pewarisan di Java dapat dilakukan terhadap
bentukan class dan interface. Dimungkinkan pewarisan pada interface karena
internface dapat dipandang sebagai class yang implementasinya sepenuhnya
ditunda. Di Java pewarisan jamak (multiple inheritance) di rancangan orientasi
object dapat diselesaikan menggunakan bentukan interface.
Pewarisan di Java dilakukan dengan
kelas dapat mewarisi kelas lain dengan keyword extends. Bila kelas tidak
dikehendaki untuk diwarisi maka dapat diberi keyword final.
Contoh kode program Inheritance :
Simpan dengan nama PERSEGI.java
class PERSEGI {
protected double panjang, lebar ;
public PERSEGI(){
setPL (1 , 1);
}
public PERSEGI(double p, double l){
if (p>0 && l>0){
panjang = p ;
lebar = l ;
}else{
panjang = 2.0 ;
lebar = 1.0 ;
}
}
public void setPL(double p, double l){
if(p>0 && l>0){
panjang = p ;
lebar = l ;
}
}
public double getPanjang(){
return panjang ;
}
public double getLebar(){
return lebar ;
}
public double hitungLuas(){
return (panjang * lebar) ;
}
public double hitungKel(){
return (2*(panjang+lebar)) ;
}
}
protected double panjang, lebar ;
public PERSEGI(){
setPL (1 , 1);
}
public PERSEGI(double p, double l){
if (p>0 && l>0){
panjang = p ;
lebar = l ;
}else{
panjang = 2.0 ;
lebar = 1.0 ;
}
}
public void setPL(double p, double l){
if(p>0 && l>0){
panjang = p ;
lebar = l ;
}
}
public double getPanjang(){
return panjang ;
}
public double getLebar(){
return lebar ;
}
public double hitungLuas(){
return (panjang * lebar) ;
}
public double hitungKel(){
return (2*(panjang+lebar)) ;
}
}
Simpan dengan BALOK.java
public class BALOK extends PERSEGI{
private double tinggi ;
public BALOK(){
setPL(1,1) ;
setTinggi(1) ;
}
public BALOK(double p, double l, double t){
setPL(p,l) ;
setTinggi(t) ;
}
public void setTinggi(double t){
if(t>0){
tinggi = t ;
}
}
public double getTinggi(){
return(tinggi) ;
}
public double hitungLuas(){
return(super.hitungLuas()*4.0 + super.getLebar() * tinggi * 2.0) ;
}
public double hitungVol(){
return(super.hitungLuas()* tinggi) ;
}
}
Simpan dengan nama LatInheritance.java
public class LatInheritance {
public static void main(String[] args) {
PERSEGI kotak = new PERSEGI(4.5, 3.5);
System.out.println("Deskripsi PERSEGI kotak");
System.out.println("Panjang : "+ kotak.getPanjang() + " meter");
System.out.println("Lebar : "+ kotak.getLebar() + " meter");
System.out.println("Luas : "+ kotak.hitungLuas() + " meter persegi");
System.out.println("Keliling : "+ kotak.hitungKel() + " meter");
System.out.println("");
double p = kotak.getPanjang() ;
double l = kotak.getLebar() ;
BALOK kubus = new BALOK(p, l, 3.0) ;
System.out.println("Deskripsi Balok Kubus");
System.out.println("Panjang :"+ kubus.getPanjang()+ " meter");
System.out.println("Lebar :"+ kubus.getLebar()+ " meter");
System.out.println("Tinggi :"+ kubus.getTinggi()+ " meter");
System.out.println("Luas : "+ kubus.hitungLuas() + " meter persegi");
System.out.println("Volume : "+ kubus.hitungVol() + " meter kubik");
}
}
Semua file disimpan dalam satu folder dengan nama LatInheritance, ketika file java tersebut dikompile lalu dijalankan maka outputnya dapat kita lihat seperti di bawah ini :
Deskripsi PERSEGI kotak
Panjang : 4.5 meter
Lebar : 3.5 meter
Luas : 15.75 meter persegi
Keliling : 16.0 meter
Deskripsi Balok Kubus
Panjang :4.5 meter
Lebar :3.5 meter
Tinggi :3.0 meter
Luas : 84.0 meter persegi
Volume : 47.25 meter kubik
Press any key to continue . .
Tidak ada komentar:
Posting Komentar