yaak~ bertemu lagi dengan saya.. siapa? entahlah..haha, lupakan..
kali ini saya akan mencoba memposting tentang Inheritance dan Polimorfisme pada Java.. dan di bawah ini sudah terdapat artikel yg bisa membantu kita memahaminya.. selamat membaca.. ^^
Pada dasarnya kita sebagai manusia sudah terbiasa untuk melihat
objek yang berada di sekitar kita tersusun secara hierarki berdasarkan
class-nya masing-masing. Dari sini kemudian timbul suatu konsep tentang
pewarisan yang merupakan suatu proses dimana suatu class diturunkan dari class
lainnya sehingga ia mendapatkkan ciri atau sifat dari class tersebut.
Dari hirarki di atas dapat dilihat bahwa, semakin ke bawah, class akan semakin
bersifat spesifik. Misalnya, sebuah Class mamalia memiliki seluruh sifat yang
dimiliki oleh binatang, demikian halnya juga anjing, kucing dan monyet memiliki
seluruh sifat yang diturunkan dari class mamalia. Dengan konsep ini,
karakteristik yang dimiliki oleh class binatang cukup didefinisikan dalam class
binatang saja. Class mamalia tidak perlu mendefinisikan ulang apa yang telah
dimiliki oleh class binatang, karena sebagai class turunannya, ia akan
mendapatkan karakteristik dari class binatang secara otomatis. Demikian juga
dengan class anjing, kucing dan monyet, hanya perlu mendefinisikan
karakteristik yang spesifik dimiliki oleh class-nya masing-masing. Dengan
memanfaatkan konsep pewarisan ini dalam pemrograman, maka hanya perlu
mendefinisikan karakteristik yang lebih umum akan didapatkan dari class
darimana ia diturunkan.
Penurunan sifat tersebut dalam Bahasa Pemrograman Java disebut dengan
Inheritance yaitu satu dalam Pilar Dasar OOP (Object Oriented Programing), yang
dalam implementasinya merupakan sebuah hubungan “adalah bagian dari” atau “is a
relationship” object yang diinherit (diturunkan).
Latar belakang diperlukannya suatu inheritance dalam pemrograman java adalah
untuk menghindari duplikasi object baik itu field, variable maupun methode yang
sebenarnya merupakan object yang bisa diturunkan dari hanya sebuah class. Jadi
inheritance bukan sebuah Class yang di inherit oleh sebuah Literial, tapi lebih
menunjukkan ke hubungan antar object itu sendiri.
Sedangkan 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
OK biar gak banyak teori, buatlah base class Orang berikut ini:
01
|
package test.polimorfisme;
|
02
|
|
07
|
public class Orang {
|
08
|
protected String name;
|
09
|
protected String address;
|
10
|
|
11
|
/** konstruktor tanpa parameter **/
|
12
|
public Orang() {
|
13
|
System.out.println("konstruktor dalam kelas
Orang");
|
14
|
name = "";
|
17
|
|
18
|
/** konstruktor dengan parameter nama, address **/
|
19
|
public Orang(String name, String address) {
|
20
|
this.name = name;
|
21
|
this.address = address;
|
22
|
}
|
23
|
|
24
|
/** method accessor **/
|
25
|
public String getAddress() {
|
26
|
return address;
|
29
|
public void setAddress(String address) {
|
30
|
this.address = address;
|
33
|
public String getName() {
|
34
|
System.out.println("Nama orang : " + name);
|
37
|
|
38
|
public void setName(String name) {
|
39
|
this.name = name;
|
40
|
}
|
Kemudian kita buat kelas turunan Siswa sebagai berikut:
01
|
package test.polimorfisme;
|
02
|
|
07
|
public class Siswa extends Orang {
|
08
|
|
09
|
Siswa(String name, String address) {
|
10
|
super(name, address);
|
13
|
public String getName() {
|
14
|
System.out.println("Nama Siswa : " + name);
|
Selanjutnya kelas Karyawan yang merupakan turunan dari Class
Orang:
01
|
package test.polimorfisme;
|
02
|
|
07
|
public class Karyawan extends Orang {
|
08
|
|
09
|
Karyawan(String name, String address) {
|
10
|
super(name, address);
|
13
|
public String getName(){
|
14
|
System.out.println("Nama Kayawan : " + name);
|
Terakhir kita test Class-class yang telah kita buat:
01
|
package test.polimorfisme;
|
02
|
|
07
|
public class TestApp {
|
08
|
public static void main(String[] args) {
|
11
|
Siswa objSiswa = new Siswa("chester","yellowen");
|
12
|
Karyawan objKaryawan = new Karyawan("Tokihiro","Osaka");
|
13
|
|
14
|
/** orang merujuk kepada objek siswa **/
|
15
|
ref = objSiswa;
|
16
|
ref.getName();
|
17
|
|
18
|
/** orang merujuk kepada objek karyawan **/
|
19
|
ref = objKaryawan;
|
20
|
ref.getName();
|
Semoga Bermanfaat.. ^^