INHERITANCE
& POLIMORFISME PADA JAVA
Inheritance atau
pewarisan adalah pendeklarasian yang dilakukan dengan cara menurunkan atribut
beserta method (dengan catatan selain private) dari superclass ke subclass.
Pengertian dari superclass adalah class yang mewariskan atribut dan methodnya
ke subclass sedangkan subclass merupakan class yang diwarisi sifat-sifat dari
superclass. Dan nantinya class yang baru yang telah diwarisi sifat dari
superclass, akan mempunyai sifat-sifat yang sama dengan superclass.
Misal sama
seperti seekor kucing yang mewarisi pigmen warna yang sama seperti milik
induknya dan juga behaviour (sifat-sifat) dari induknya. Namun hal ini juga
tidak menutup kemungkinan untuk menemberikan state-state yang lebih spesifik
dan juga behaviour yang baru atau bahkan bisa dimodifikasi seperti yang
diinginkan. Misalnya kucing tadi kita dapat memberikan data membernya yang
lebih spesifik seperti lingkungan tempat kucing tersebut hidup dll. Nah dalam mendeklarasikan inheritance
(pewarisan) dalam compiler java, cukup dengan menuliskan kata extends setelah
deklarasi dari nama class, lalu setelah itu ketik lagi kata superclassnya.
Ditulis seperti ini :
class Kucing extends Mamalia {
// spesifikasi atau modifikasi
// struktur atau sifat-sifat dari kelas Mamalia
}
Ada juga beberapa jenis dari inheritance
yaitu single inheritance, multiple inheritance serta multilevel inheritance.
Single inheritance merupakan suatu class yang hanya mempunyai satu superclass,
sedangkan multiple inheritance adalah class yang mempunyai lebih dari satu
superclassnya pada variabel dan method yang telah diwariskan merupakan hasil
variasi dari superclass-nya. Dan multilevel inheritance adalah subclass yang
menjadi superclass bagi class yang lain.
Dalam pewarisan terdapat method overriding dan juga
overloading. Pengertian dari method overriding merupakan pendefinisian kembali
method yang sama. Contohnya kasusnya misalnya penulisan nama method yang sama
atau pada parameter (signature) yang ada pada subclass. Lalu overloading
merupakan pendefinisian pada method yang sama, tetapi parameter yang beda dalam
definisi class yang sama (masih dalam satu class). Contohnya inheritance dalam
java :
public class Persegi{
double Sisi;
Persegi(double
Sisi) {
this.Sisi = Sisi;
}
double
hitungLuas() {
return (Sisi
* Sisi);
}
double getSisi()
{
return Sisi;
}
}
class Kubus extends Persegi{
Kubus(double
Sisi){
super(Sisi);
}
@Override
double hitungLuas()
{
return (Sisi
* Sisi * Sisi);
}
}
public class Hitung
{
public static
void main (String[]args){
Kubus k1 =
new Kubus (5);
Persegi p1 =
new Persegi(5);
System.out.println("Sisi = " +k1.Sisi);
System.out.println("Luas
= " +p1.hitungLuas());
System.out.println("Volume = " +k1.hitungLuas());
}
}
B. POLIMORFISME
Polimorfisme merupakan sebuah pemikiran yang intinya
suatu hal yang sama dapat menghasilkan bentuk dan perilaku yang berbeda-beda.
Polimorfisme juga berarti terdapat operasi yang sama pada class yang berbeda.
Misalnya saat kita punya class “PersegiPanjang” dan “Persegi”, dimana class
tersebut adalah sebuah subclass dari class “Balok” dan “Kubus”. Maka saat kita
ingin memperkecil ukuran dari persegi panjang kita harus memperkecil panjang
dan juga lebarnya, begitu pula pada persegi kita harus memperkecil sisinya. Nah
itu lah yang dimaksud dengan konsep polimorfisme, saat kita sama-sama ingin
mengecilkan ukuran masing-masing bangun tersebut namun dengan cara yang
berbeda-beda.
Dalam pembuatan polimorfisme terdapat beberapa aspek
yang harus diperhatikan :
1.
Method access attribute yang ada pada subclass
harus lebih spesifik dibandingan dengan yang ada di superclass
2.
Method-method yang akan dipanggil, cara
pemanggilannya harus melalui variable-variabel yang ada pada superclass.
3.
Method-method yang akan dipanggil harus menjadi
method juga di superclass
4.
Parameter yang ada di method harus sama antara
yang ada di subclass dan yang ada di superclass
Berikut contoh-nya dalam java :
public class Tumbuhan
{
public void info (){
System.out.println("info () pada Tumbuhan : berklorofil, berkembang,
bernafas");
}
public class Dikotil extends Tumbuhan
{
public void
info(){
System.out.println("info()
pada Dikotil : biji berkeping dua");
}
}
public class Rambutan extends Dikotil
{
public void info
(){
System.out.println("info() pada Rambutan : daunnya berklorofil,
buahnya berwarna merah");
}
}
public class Info
{
public static
void main (String[]args){
Dikotil
dikotil;
Rambutan
rambutanKlengkeng;
Tumbuhan
tumbuhan;
dikotil =
new Dikotil();
rambutanKlengkeng = new Rambutan();
tumbuhan = dikotil;
tumbuhan.info();
tumbuhan =
rambutanKlengkeng;
tumbuhan.info();
}
}
makasih sudah share infonya
BalasHapuslampu servis hp
How to watch video from your Samsung Gear VR
BalasHapusHow to watch video from download youtube to mp3 your Samsung Gear VR