Bookmark Us!

Friday, 13 April 2012

Inheritance & polymorphisme java


Pada dasarnya, kita melakukan inheritance(pewarisan) untuk membuat suatu class baru(class turunan/subclass) yang masih memiliki sifat atau spesifikasi dari superclass.
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.

Beberapa aturan tentang pewarisan(inheritance) yang perlu diperhatikan :
1. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah.

2. Subclass juga merupakan class biasa, maka kita tetap dapat melakukan pewarisan pada subclass ini. Misal : class B merupakan subclass dari class A, kita dapat membuat class baru yang diturunkan dari class B sehingga class baru tersebut akan memiliki apa yang dimiliki oleh class A dan class B.

3. Suatu parent class dapat tidak mewariskan sebagian member-nya kepada subclass-nya. Sejauh mana suatu member dapat diwariskan ke class lain, ataupun suatu member dapat diakses dari class lain, sangat berhubungan dengan access control (kontrol pengaksesan).

contoh :

import java.io.*;
public class Mamalia {
void KelasMamalia () {
System.out.println("Ciri umum mamalia adalah bernapas dengan paru-paru, " +
"berkembang biak dengan cara beranak");
}}

class Paus extends Mamalia {
String x = "Ikan Paus";
void TampilkanPaus () {
System.out.println("dan Mamalia yang Anda pilih adalah "+ x );
System.out.println("Mamalia ini berada di laut");
System.out.println("Paus termasuk jenis mamalia terbesar");
}}

class Cheetah extends Mamalia {
String x = "Cheetah";
void TampilkanCheetah () {
System.out.println("dan Mamalia yang Anda pilih adalah "+ x );
System.out.println("Mamalia ini berada di darat");
System.out.println("Cheetah termasuk mamalia pelari tercepat di darat");
}}

class Sapi extends Mamalia {
String x = "Sapi";
void TampilkanSapi () {
System.out.println("dan Mamalia yang Anda pilih adalah "+ x );
System.out.println("Mamalia ini berada di darat");
System.out.println("Sapi termasuk jenis mamalia pemamahbiak");
}}

class Turunan {
public static void main(String[] args) throws IOException{
String sInput = null ;
System.out.println("____JENIS MAMALIA____");
System.out.println("[1]. IKAN PAUS");
System.out.println("[2]. CHEETAH");
System.out.println("[3]. SAPI");
System.out.print("Masukkan pilihan [1..3] :");
Mamalia generalx = new Mamalia();
Paus turunan1 = new Paus();
Cheetah turunan2 = new Cheetah();
Sapi turunan3 = new Sapi ();
Sapi subxc = new Sapi();
InputStreamReader inputan = new InputStreamReader(System.in);
BufferedReader jm = new BufferedReader(inputan);
sInput = jm.readLine();
int i = Integer.parseInt(sInput);
switch (i) {
case 1 :
generalx.KelasMamalia ();
turunan1.TampilkanPaus ();break;
case 2 :
generalx.KelasMamalia ();
turunan2.TampilkanCheetah ();break;
case 3 :
generalx.KelasMamalia ();
turunan3.TampilkanSapi ();break;
default:
System.out.println("Pilihan yang Anda masukkan salah!!");break;
}
}
}


Polymorphism, 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.

Ada dua jenis polymorphisme yaitu Override dan Overload. Di dalam java dikatakan bersifat override ketika terdapat method dengan nama, parameter dan tipe data yang sama persis di dalam kelas induk maupun kelas turunannya. Overload Polymophisme memiliki perbedaan pada method yang ada. Pada overload polymorphisme terdapat lebih dari satu method dengan nama yang sama tetapi memiliki jumlah parameter maupun tipe data yang berbeda.

contoh :

// mendefinisikan kelas induk
class Penyanyi {
public void bernyanyi ( ) {
System.out.println(“Karakteristik nadanya” + “belum didefinisikan”);
}
}

// mendefinisikan kelas-kelas turunan dari kelas Penyanyi
class PenyanyiJazz extends Penyanyi {
// melakukan override terhadap method bernyanyi ( )
public void bernyanyi ( ) {
System.out.println(“Bernyanyi dengan irama Jazz”);
}
}

class PenyanyiPop extends Penyanyi {
public void bernyanyi ( ) {
System.out.println(“Bernyanyi dengan irama Pop”);
}
}

class PenyanyiRock extends Penyanyi {
public void bernyanyi ( ) {
System.out.println(“Bernyanyi dengan irama rock”);
}
}

class ContohPolimorfisme {
// melakukan override terhadap method bernyanyi ( )
public static void main (String[] args) {
Penyanyi p;

PenyanyiJazz ojan = new PenyanyiJazz ( );
PenyanyiPop maan = new PenyanyiPop ( );
PenyanyiRock axl = new PenyanyiRock ( );

// p mengacu pada objek PenyanyiJazz
p = ojan;
// akan memanggil method pada kelas PenyanyiJazz
p.bernyanyi ( );

// p mengacu pada objek PenyanyiPop
p = maan;
// akan memanggil method pada kelas PenyanyiPop
p.bernyanyi ( );

// p mengacu pada objek PenyanyiRock
p = axl;
// akan memanggil method pada kelas PenyanyiRock
p.bernyanyi ( );
}
}

sumber:http://javaprogramming26.blogspot.com/2010/06/polimorfisme.html

1 komentar:

maaf mas saya mau bertanya nie..
Cara menambahkan comman atau apalah namanya g tau maklum newbie di suatu file class agar bisa membaca file di dalam aplikasi yang file itu kita kasih sndiri itu gmn ya mas?

Post a Comment