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
0 komentar:
Post a Comment