Home » , » Inheritance

Inheritance

Written By sunardi on Saturday, April 10, 2010 | 9:45 AM

Inheritance/pewarisan adalah membuat class baru yang masih mempunyai spesifikasi (state & behaviour)
yang sama dengan class yang sudah ada.

Class yang baru disebut class turunan/subclass sementara,
class yang sudah ada disebut dengan class induk/superclass.


umum
SuperClass | Polygon ( state: P & L & warna,
| | | behaviour: cetak info P & L & warna)
| | |
V | V
SubClass | segiempat ( state: P & L & warna,
| | | behaviour: cetak info P & L & warna, hitung luas segiempat)
| | |
V | V
Sub-Subclass | jajarangenjang ( state: P & L & warna,
V behaviour: cetak info P & L & warna, hitung luas empat,
khusus hitung luas segitiga, hitung luas jajarangenjang)


SubClass (class turunan) akan memiliki(mewarisi) semua ciri dan sifat dari SuperClass (class induk).
Keyword yang digunakan dalam pewarisan ini adalah "EXTENDS ".

program ex.: induk_anak.java
----------------------------
class induk {
int A, B;

void tampil() {
System.out.println("Nilai A : " + A + ", B : " + B);
}
}

class anak extends induk { //-----> membuat class "anak" yang diturunkan(inherite) dari class "induk"
int C;

void jumlah() {
// class "anak" juga mempunyai member (state) milik class "induk"
System.out.println("Jumlah : " + (A+B+C) );
}
}

class induk_anak {
public static void main(String[] args) {
induk hen_cock = new induk();
anak chicken = new anak();

System.out.println("Class Induk/SuperClass");
hen_cock.A = 1;
hen_cock.B = 2;
hen_cock.tampil();

System.out.println("Class Anak/SubClass");
chicken.A = 3;
chicken.B = 4;
chicken.tampil();

chicken.z = 5;
chicken.jumlah();
}
}
----------------------------

Hasil :
Class Induk/SuperClass
Nilai A : 1, B : 2
Class Anak/SubClass
Nilai A : 3, B : 4
Jumlah : 12
----------------------------


Pada Class turunan dapat ditambahkan state & behaviour yang baru,
yang merupakan/bersifat spesifik milik subclass itu sendiri.
Ex: var C dan method jumlah

Dimungkinkan juga untuk pendefinisian ulang state & behaviour
dari class induk di class turunan (overloading/overriding).
Contoh :

program ex.: induk_anak2.java
----------------------------
class induk {
int A, B;

void tampil() {
System.out.println("Nilai A : " + A + ", B : " + B);
}
}

class anak2 extends induk { //-----> membuat class "anak" yang diturunkan(inherite) dari class "induk"
int C;

void tampil() {
System.out.println("Nilai A : " + A + ", B : " + B + ", C : " + C);
}

void jumlah() {
// class "anak" juga mempunyai member (state) milik class "induk"
System.out.println("Jumlah : " + (A+B+C) );
}
}

class induk_anak {
public static void main(String[] args) {
induk hen_cock = new induk();
anak chicken = new anak();

System.out.println("Class Induk/SuperClass");
hen_cock.A = 1;
hen_cock.B = 2;
hen_cock.tampil();

System.out.println("Class Anak/SubClass");
chicken.A = 3;
chicken.B = 4;
chicken.tampil();

chicken.z = 5;
chicken.jumlah();
}
}
----------------------------

Hasil :
Class Induk/SuperClass
Nilai A : 1, B : 2
Class Anak/SubClass
Nilai A : 3, B : 4, C : 5
Jumlah : 12
----------------------------

Dengan adanya overriding method, object akan langsung menggunakan method
yang didefinifikan pada class tersebut.
Sehingga untuk mengakses method yang sama milik class induk dibutuhkan keyword "super".
ex:
super.A=3;
super.tampil();


Dimungkinkannya inheritance dan overriding method, class turunan dapat dipastikan juga
memiliki construktor dari class induk.
Untuk menggunakan construktor milik class induk anda cukup menggunakan keyword "super" seperti di atas.
Namun anda tidak perlu menuliskan nama construktor tersebut (ex: super.induk()).
Cukup gunakan keyword "super" ditambah dengan daftar parameter yang sama dengan cunstruktor milik induk.

program ex.: induk_anak3.java
----------------------------
class induk {
int A, B;

induk(int x, int y) {
A = x;
B = y;
}

void tampil() {
System.out.println("Nilai A : " + A + ", B : " + B);
}
}

class anak2 extends induk { //-----> membuat class "anak" yang diturunkan(inherite) dari class "induk"
int C;

induk(int x, int y, int z) {
super(x,y);
C = z;
}

void tampil() {
System.out.println("Nilai A : " + A + ", B : " + B + ", C : " + C);
}

void jumlah() {
// class "anak" juga mempunyai member (state) milik class "induk"
System.out.println("Jumlah : " + (A+B+C) );
}
}

class induk_anak {
public static void main(String[] args) {
induk hen_cock = new induk();
anak chicken = new anak();

System.out.println("Class Induk/SuperClass");
hen_cock.A = 1;
hen_cock.B = 2;
hen_cock.tampil();

System.out.println("Class Anak/SubClass");
chicken.A = 3;
chicken.B = 4;
chicken.tampil();

chicken.z = 5;
chicken.jumlah();
}
}
----------------------------


Di Java tidak diizinkan "multiple inheritance" seperti yang diizinkan di C++ .
ex: class jajarangenjang : public segiempat, public segitiga

Namun ada cara lain untuk menurunkan beberapa kelas dalam satu class,
yaitu "multilevel (inheritance) hierarchy".
Ex:

class induk{
......
......
}

class anak extends induk{
......
......
}

class cucu extends anak{
......
......
}


Dari program diatas, class cucu akan memiliki spesifikasi/sifat seperti yang dimiliki
class anak dan induk sekaligus.


Keuntungan :
1. Reusable code, tidak perlu mendefinisikan/membuat method lagi. Gunakan saja yang sudah ada.
2. Hemat waktu, biaya dan tenaga dalam pengembangan program.

oleh
nama : sunardi
nim : 09530570
Share this article :

0 komentar:

Post a Comment

 
Support : Creating Website | Johny Template | Mas Template
Copyright © 2011. sisuncute - All Rights Reserved
Template Created by Creating Website Published by Mas Template
Proudly powered by Blogger