Wednesday, December 5, 2012

POLIMORFISME DAN INHERITANCE


POLIMORFISME

Suatu kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda agar tidak terjadi duplikasi object kita kenal sebagai polymorphism.
Antara penurununan sifat (inheritance) maupun polymorphism merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah tersebut.



-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:


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 "+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();
}}



Kemampuan dari referensi untuk mengubah sifat menurut object apa yang dijadikan acuan dinamakan polimorfisme. Polimorfisme menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari superclass tunggal, secara otomatis menunjuk method yang tepat untuk menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya.

INHERITANCE


Inheritance adalah pewarisan. Pewarisan dalam pemrograman berorientasi objek, Inheritance memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class hirarki. Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak semua di antara mereka dapat diakses oleh anggota fungsi dari kelas.
Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
# Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki.
# Subclass adalah class anak. Semua property, methode, ataupun konstruktor yang dimiliki oleh superclass jika  diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass.


Contoh:

public class Striker extends posisi {
    public static void main (String[]args){
        Striker a = new Striker();
        a.cetak1();
        a.cetak2();
    }
}
class posisi {
    public void cetak1(){
        System.out.println("Saya di posisi depan !");}
        protected void cetak2(){
        System.out.println("I am a Striker !");}  
        private void cetak3(){
            System.out.println("P="   +P);
        }
 int P = 8;
}



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.


No comments:

Post a Comment