Jumat, 18 Desember 2009

Inheritance

Menurut bahasa, inheritance adalah warisan atau pewarisan. Sebuah pewarisan berarti ada pewaris dan yang mewarisi. Dalam PBO, inheritance atau pewarisan adalah suatu keadaan dimana suatu kelas baru mewarisi seluruh variabel atau data dan method yang dimiliki oleh kelas yang menjadi induknya (parents). Suatu kelas bisa dikatakan mewarisi sebuah kelas lain apabila kelas tersebut memliki semua variabel dan method yang dimiliki kelas induknya dan dia sendiri mememiliki variabel dan atau method sendiri yang tidak dimiliki olek kelas induk.

Contoh pewarisan yang sederhana misalnya kelas burung. Sebuah kelas burung mempunyai antara lain :

variabel :

* warna bulu
* panjang sayap
* makanan

method :

* bisa terbang
* bisa bertelur
* bisa bersuara

kemudian kita mendefinisikan lagi sebuah kelas baru yang mewarisi variabel dan method dari kelas burung, misalnya kelas burungLiar. Maka kelas burungLiar akan mempunyai semua variabel dan method yang dimiliki oleh kelas burung disamping dia sendiri mempunyai variabel dan method sendiri yang tidak dimiliki oleh kelas burung. Jadi seluruh variabel dan method kelas burungLiar misalnya sebagai berkut :

variabel :

* warna bulu
* panjang sayap
* makanan
* habitat ( variabel hanya milik kelas burungLiar )

method :

* bisa terbang
* bisa bertelur
* bisa bersuara
* bisa berkoloni ( method hanya milik kelas burungLiar )

Tetapi tidak semua variabel atau fungsi dapat diwariskan ke kelas turunan. Variabel atau fungsi yang di deklarasikan public akan diwariskan kepada turunan, sedang variabel atau fungsi yang dideklarasi private tidak akan diwariskan ke kelas turunnya. Variabel yang hanya bisa diakses oleh turunannya biasanya dideklarasikan secara protected.

Contoh program :

#include "iostream.h"
class PersegiPanjang
{
protected :
int panjang;
int lebar;
public :
PersegiPanjang(int pj, int lb)
{
panjang = pj;
lebar = lb;
}
int Panjang()
{
return panjang;
}
int Lebar()
{
return lebar;
}
int Keliling()
{
return 2*(panjang+lebar);
}
int Luas()
{
return panjang*lebar;
}
void Skala(float sk)
{
panjang *= sk;
lebar *= sk;
}
void TulisInfo()
{
cout<<"Panjang : "<< panjang << endl
<<"Lebar :"<< lebar < <<"Keliling :"<< Keliling() << endl
<<"Luas :"<< Luas() << endl;
}
};


Simpan file di atas dengan nama PersegiPJ.Cpp
Kemudian lanjutkan pembuatan program berikut pada halaman baru:


// penggunaan kelas persegi panjang
#include "PersegiPJ.Cpp"
void main()
{
PersegiPanjang pp1(10,5);
pp1.Skala(2);
pp1.TulisInfo();
cin.get();
cin.sync();
cin.clear();
}

0 komentar:

Posting Komentar