Rabu, 18 April 2012

Inheritance dan Polimorfisme pada Java

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.

Polymorphism adalah suatu aksi yang memungkinkan pemrogram menyampaikan pesan tertentu keluar dari hirarki obyeknya, dimana obyek yang berbeda memberikan tanggapan/respon terhadap pesan yang sama sesuai dengan sifat masing-masing obyek.
Atau Polymorphic dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override), suatu method, yang berasal dari parent class (super class) dimana object tersebut diturunkan, sehingga memiliki kelakuan yang berbeda.

Listing program :

# Pertama buat class utamanya *save dengan matematika.java*

class matematika
{
                private int a,b;
                public matematika ()
                {
                                a = 1;
                                b = 2;
                }
                public int tambah ()
                {
                                return a + b;
                }
                public int kurang ()
                {
                                return a - b;
                }
                public int kali ()
                {
                                return a * b;
                }
                public int bagi ()
                {
                                return a / b;
                }
}

# kemudian buat subclass ke-1 nya *save dengan penambahan.java*

class penambahan extends matematika
{
                private int x,y ;
                public penambahan ()
                {
                                x = 1;
                                y = 2;
                }
                public penambahan (int i,int j)
                {
                                x = i;
                                y = j;
                }
                public int tambah ()
                {
                                return x + y;
                }
}

# lalu buat subclass ke-2 nya *save dengan perkalian.java*

class perkalian extends matematika
{
                private int x,y ;
                public perkalian ()
                {
                                x = 1;
                                y = 2;
                }
                public perkalian (int i,int j)
                {
                                x = i;
                                y = j;
                }
                public int kali ()
                {
                                return x * y;
                }
}

# terus buat subclass ke-3 nya *save dengan pengurangan.java*

class pengurangan extends matematika
{
                private int x,y ;
                public pengurangan ()
                {
                                x = 1;
                                y = 2;
                }
                public pengurangan (int i,int j)
                {
                                x = i;
                                y = j;
                }
                public int kurang ()
                {
                                return x - y;
                }
}

# setelah itu buat subclass ke-4 nya *save dengan pembagian.java*

class pembagian extends matematika
{
// Pada saat class Pembagian menurunkan atau memperluas (extend) class matematika, maka ia mewarisi data member yang dipunyai oleh class Matematika. Dengan demikian, class pembagian mempunyai data member yang diwarisi oleh Matematika, ditambah dengan data member yang ia miliki
                private int x,y ;
                public pembagian ()
                {
                                x = 1;
                                y = 2;
                }
                public pembagian (int i,int j)
                {
                                x = i;
                                y = j;
                }
                public int bagi ()
                {
                                return x / y;
                }
}

# yang terakhir buat class lagi untuk memanggil class-class yang sudah dibuat *save dengan pbo.java*

class pbo
{
                public static void main (String [] args)
                {
                                matematika call;
                                penambahan itung = new penambahan (10,2);
                                perkalian itung1 = new perkalian (10,2);
                                pengurangan itung2 = new pengurangan (10,2);
                                pembagian itung3 = new pembagian (10,2);
                                System.out.println ("a = 10, b = 2");
                                call = itung;
                                System.out.println ("hasil penambahan = " +itung.tambah());
                                call = itung1;
                                System.out.println ("hasil perkalian = " +itung1.kali());
                                call = itung2;
                                System.out.println ("hasil pengurangan = " +itung2.kurang());
                                call = itung3;
                                System.out.println ("hasil pembagian = " +itung3.bagi());
                }
}
//Pada kelas yang terakhir ini, fungsinya untuk memanggil kelas-kelas yang sudah dibuat sebelumnya, sehingga tidak usah memanggil secara satu-persatu. Saat kita menjalankan/mengcompile program ini, maka secara otomatis kelas-kelas yang sudah dibuat sebelumnya akan ikut terpanggil.

# kemudian compile semua class, lalu jalankan class yang terakhir “pbo.java”

Output Program :



Tidak ada komentar:

Posting Komentar