Wednesday, April 18, 2012

Inheritance & Polimorfisme


Mau tau penjelasan mengenai Inheritance dan Polimorfisme pada bahasa pemrograman Java? Berikut penjelasanya…

Inheritance
Class dapat didefinisikan dengan referensi pada class yang lain yang telah terdefinisi. Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi tersebut atau biasa dikenal dengan pewarisan sifat. Setiap subclass akan mewarisi state ( variabel-variabel ) dan behaviour ( method-method ) dari superclass-nya. Subclass kemudian dapat menambahkan state dan behaviour baru yang spesifik dan dapat pula memodifikasi (override) state dan behaviour yang diturunkan oleh superclass-nya. Dengan inheritance, pengembangan software dapat bekerja lebih efisien dan lebih cepat.

Keuntungan dari inheritance adalah :
  • Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari superclass yang telah ada.
  • Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum.

Istilah dalam inheritance yang perlu diperhatikan :
  • Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
  • Superclass
Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar  dari subclass/class anak.
  • Subclass
Subclass adalah class anak atau turunan secara hirarki dari superclass.
  • Super
Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass.
  • Methode Overriding
Pendefinisian ulang method yang sama pada subclass.
·         Token
Token adalah elemen terkecil di program yang masih memiliki arti. Ada 5 token dalam bahasa Java yaitu identifier, keyword, literal dan tipe data, operator, serta separator.

Dalam inheritance, method overriding berbeda dengan method overloading. Kalau method overriding adalah mendefinisikan kembali method yang sama, baik nama method maupun signature atau parameter yang diperlukan dalam subclass, kalau method overloading adalah mendefinisikan method yang memiliki nama yang sama, tetapi dengan signature yang berbeda dalam definisi class yang sama.

Contoh program :
public class Question { //pendeklarasian kelas question
   public static void main (String args[]) { ////fungsi main di Java
                                    Hobi h = new Hobi();
                                    h.answer1();
                                    Hobilain hl = new Hobilain();
                                    hl.answer2();
                                    }
                        }

            class Hobi {
                        public Hobi() { //pendeklarasian kelas Hobi menggunakan modifier publik
                                    System.out.println("Hobi kamu apaan?"); //mencetak output
                                    }
                        public void answer1() { //membuat method pertama
                                    System.out.println("Menari");
                                    }
                        }

            class Hobilain extends Hobi { // extends adalah coding untuk pewarisan                                             public void answer2() { //membuat method kedua
                                    System.out.println("Menyanyi");
                                    }
                        }

 Output :
  

 Polimorfisme
Kata polimorfisme yang berarti satu objek dengan banyak bentuk yang berbeda, adalah konsep sederhana dalam bahasa pemrograman berorientasi objek yang berarti kemampuan dari suatu variabel referensi objek untuk memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe objeknya. Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah :
  • Method yang dipanggil harus melalui variabel dari basis class atau superclass.
  • Method yang dipanggil harus juga menjadi method dari basis class.
  • Signature method harus sama baik pada superclass maupun subclass.
  • Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.
Polimorfisme melalui pengiriman pesan. Tidak teragantung kepada pemanggilan subrutin. Bahasa orientasi objek dapat mengirim pesan. Metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu dimana pesan tersebut dikirim.

Contoh program :
public class Animal { //pendeklarasian kelas animal menggunakan akses modifier public
            public static void Binatang1() { //pendeklarasian method untuk superclass
                        System.out.println("Beruang merupakan binatang buas"); }
            public void Binatang2() { //membuat method kedua
                        System.out.println("Beruang merupakan binatang jinak");
}}
class Cat extends Animal { //extends adalah coding untuk pewarisan
            public static void Binatang1() {
                        System.out.println("Kucing adalah binatang buas"); }
            public void Binatang2() {
                        System.out.println("Kucing adalah binatang jinak"); }
            public static void main(String[] args) { //fungsi main di Java
                        Cat myCat = new Cat(); //pendeklarasian baru untuk kelas Cat
                        Animal myAnimal = myCat; //pendeklarasian objek Animal di Cat
                        Animal.Binatang1(); //memanggil method subclass dengan overriding method superclass
                        myAnimal.Binatang2();
}}

Output :



Sumber : - www.google.com

No comments:

Post a Comment