Kamis, 19 April 2012

Pewarisan / Inheritance & Polimorfisme


Pada kesempatan kali ini kami akan membahas mengenai pengertian pewarisan/inheritance dan polimorfisme beserta contoh program. Tujuan kami agar pembaca dapat memahami apa itu inheritance dan polimorfisme dalam java dan dapat membedakannya. Mari kita mulai membahasnya.
Pengertian inheritance

-Inheritance (pewarisan) proses pewarisan data dan method dari suatu
kelas kepada kelas lain.


-Pewarisan bersifat menyeluruh


-Semua data dan method milik kelas asalnya diturunkan ke kelas baru.


-Kelas yang mewariskan Super Class atau Kelas Induk


-Kelas yang diwariskan Sub Class atau Kelas Anak


Misal :
kelas B adalah kelas anak dari kelas A, maka sifat sifat dari kelas A
otomatis akan dimiliki juga oleh kelas B.
Jika kelas induk merupakan turunan dari kelas lain, maka data dan method
yang berasal dari kelas tersebut akan ikut diwariskan pula kepada kelas
anaknya.
Contoh :
o Kelas C adalah kelas anak dari kelas B
o Kelas B merupakan kelas anak dari kelas A.
o Maka sifat sifat yang diwariskan kelas A ke kelas B juga akan
diwariskan ke kelas C.
Keyword untuk pewarisan : extends


Contoh program inheritance :



class Induk {
private String var1; //hak akses private berarti tidak dapat diakses oleh kls
anak
public int var2; //hak akses public berarti dapat diakses oleh kls anak
//konstruktor
Induk (){
}
//method
public void cetakData() {
}
}
class Anak extends Induk{
private String dataAnak; //variabel
//konstruktor
Anak () {
}
public void cetak() {
cetakData();//method milik Induk
// ada jg yang memanggil dgn super.cetakData()
}
}
class DemoPewarisan {
public static void main(String args[]) {
Anak anak = new Anak();
anak.cetak();
anak.cetakData();
System.out.println("Demo Pewarisan");
System.out.println("isi var 2="+anak.var2);
}
}


Output :
C:\Documents and Settings\suherman\My Documents>javac
DemoPewarisan.java
C:\Documents and Settings\suherman\My Documents>java DemoPewarisan
Demo Pewarisan
isi var 2=0




Logika :
Pada logika pada progam inheritance dan polimorfisme ini kita dapat menemukan perbedaan pada masing - masing program. Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP. Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat mempunyai entitas/obyek turunan. Dengan konsep inheritance, sebuah class dapat mempunyai class turunan.
Yang pertama adalah class Induk { itu digunakan untuk mennjukan kelas yang akan dipakai pada program tersebut.lalu private String var1; dan public int var2; digunakan untuk memberikan suatu ruan public dalam kelas di dalam suatu variabel. Selanjutnya class Anak extends Induk yang digunakan untuk membedakan suatu program yang terdapat di inheritance. Dan pada program inheritance dapat ditemukan suatu keuntungan jika memakai program tersebut.
Keuntungan Pewarisan :

  • Bersifat reusable
Tidak harus menyalin semua data dan method dari suatu kelas jika akan menggunakannya lagi

  • Kemudahan dalam me-manage kelas yang memiliki data dan method yang sama.
Untuk memodifikasi suatu data atau method untuk semua subkelas / kelas anak, maka tidak perlu melakukan perubahan di masing-masing kelas anak melainkan hanya pada kelas induk saja.
Pengertian polimorfisme


-Polimorfisme sesuatu yang memiliki banyak bentuk.


-Dalam pemrograman, polimorfisme dapat diartikan sebagai modul yang
memiliki nama sama, namun memiliki behaviour (tingkah laku) yang berbeda
sehingga listing code implementasinya juga berbeda




Contoh program polimorfisme :
Contoh Program
class Hewan {
private String jenis;
private int kaki;
Hewan (){
}
Hewan (String jenis, int kaki){
this.jenis = jenis;
this.kaki = kaki;
}
public void bersuara() {
System.out.print("suara hewan "+jenis+" berkaki"+kaki);
}
}
class Anjing extends Hewan {
Anjing() {
super();
}
public void bersuara() { //overriding method
System.out.println("guk guk guk....");
}
}
class Kucing extends Hewan {
Kucing(String jenis, int kaki) {
super(jenis, kaki);
}
public void bersuara() { //overriding method
super.bersuara();
System.out.println( miaowwww....");
}
}
class DemoPoli {
public static void main(String args[]) {
Anjing doggy = new Anjing();
Kucing tom = new Kucing("Kucing", 4);
doggy.bersuara();
tom.bersuara();
}}



Output :

C:\Documents and Settings\suherman\My Documents>javac DemoPoli.java
C:\Documents and Settings\suherman\My Documents>java DemoPoli
guk guk guk....
suara hewan Kucing berkaki 4 miaowwww....




Logika :
Kata kunci pada program polimorfisme adalah munculnya method – method yang terdapat pada program. Untuk mencegah suatu method agar tidak dapat di override oleh kelas – kelas turunan. Contohnya pada method public void bersuara() { //overriding method. Method – method semacam ini biasanya bersifat pasti. Artinya, kelas turunan sudah tidak perlu mengimplementasikan lagi isi dari method tersebut.

Demikian penjelasan kami,,, semoga bermanfaat :)