·
Method yang
dipanggil harus melalui variabel dari basis class atau superclass.
·
Method yang
dipanggil harus juga menjadi method dari basis class.
·
Signature method
harus sama baik pada superclass maupun subclass.
·
Method
access attribute pada subclass tidak boleh lebih terbatas dari basis class.
Contoh dalam program C++ :
#include
<stdio.h>
#include
<iostream.h>
//
Deklarasi kelas-kelas
class
Kotak
{
protected :
int panjang, lebar;
long luas, keliling;
public :
Kotak (int Panjang, int Lebar);
int ambil_panjang();
int ambil_lebar();
virtual
void hitung(); // metode virtual
void
ambil (long& Luas, long& Keliling);
};
class Balok : public Kotak
{
private :
int
tinggi;
int volume;
public :
Balok (int Panjang, int Lebar, int Tinggi);
int ambil_tinggi();
virtual void hitung(); // metode virtual
void
ambil (long& Luas, long& Keliling, long& Volume);
};
// Definisi metode-metode kelas Kotak
Kotak::Kotak
(int Panjang, int Lebar)
{
panjang = Panjang;
lebar = Lebar;
}
int Kotak::ambil_panjang()
{
return panjang;
}
int Kotak::ambil_lebar()
{
return lebar;
}
void Kotak::hitung()
{
luas = panjang * lebar;
keliling = 2 * (panjang + lebar);
}
void Kotak::ambil (long& Luas, long&
Keliling)
{
Luas = luas;
Keliling = keliling;
}
// Definisi metode-metode kelas Balok
Balok::Balok (int Panjang, int Lebar, int
Tinggi):Kotak (Panjang, Lebar)
{
tinggi = Tinggi;
}
int Balok::ambil_tinggi()
{
return tinggi;
}
void Balok::hitung()
{
Kotak::hitung();
volume = panjang*lebar*tinggi;
}
void Balok::ambil(long& Luas, long&
Keliling, long& Volume)
{
Kotak::ambil(Luas, Keliling);
Volume = volume;
}
// Program Utama
int
main ()
{
Kotak
A (12, 3);
Balok B (12, 3, 8);
cout << "Menghitung luas, keliling,
dan volume bangun" <<endl;
cout <<
"===============================================" <<endl;
A.hitung();
long l, k;
A.ambil(l, k);
cout << "Kotak sisi-sisinya :
" <<endl;
cout
<< "Panjang = " << A.ambil_panjang() << endl;
cout << "Lebar = " <<
A.ambil_lebar() << endl;
cout
<< "Memiliki luas " << l <<" dan keliling
"<< k <<endl <<endl;
long
v;
B.hitung();
B.ambil(l, k, v);
cout << "Balok dengan
rusuk-rusuknya : " << endl;
cout
<< "Panjang = " << B.ambil_panjang() <<endl;
cout
<< "Lebar = " << B.ambil_lebar() << endl;
cout
<< "Tinggi = " << B.ambil_tinggi() << endl;
cout
<< "Memiliki luas " << l <<", keliling
"<< k <<", dan volume " << v <<endl;
}
2. Manfaat Polymorphisme
·
Dapat
menggunakan kelas-kelas yang kita buat (sebagai super kelas) dan membuat kelas
kelas baru berdasar superkelas tersebut dengan karakteristik yang lebih khusus
dari behaviour umum yang dimiliki superkelas.
·
Dapat
membuat super kelas yang hanya mendefinisikan behaviour namun tidak memberikan
implementasi dari metode-metode yang ada.
·
Menghindari
duplikasi object, Dapat menciptakan class baru dari class yang sudah
ada,sehingga tidak perlu menuliskan code dari nol ataupun mengulangnya, namun
tetap bisa menambahkan attribute dan method unik dari class itu sendiri.
3. Manfaat Inheritance :
·
Subclass menyediakan state/behaviour yang
spesifik yang membedakannya dengan superclass,
hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari superclass yang telah ada.
·
Programmer Java
dapat mendefinisikan superclass khusus
yang bersifat generik, yang disebut abstract
class, untuk mendefinisikan class dengan behaviour
dan state secara
umum.
·
Kemudahan dalam
me-manage kelas yang memiliki data dan method yang sama Untuk memodifikasi
suatu data atau method untuk semua subkelas / kelas anak, makatidak perlu
melakukan perubahan di masing-masing kelas anak melainkan hanya pada kelas
induk saja.
Contoh inheritance dalam java :
[modifier] class namaSubKelas extend
namaKelasSuper {
// classBody
}
public class Komunitas {
String nama;
String alamat;
String alamat2;
String kota;
int umur;
/** Defenisi kelas Komunitas */
public Komunitas() {
nama = "";
alamat = "";
alamat2 = "";
kota = "";
umur = 0;
}
public Komunitas(String newNama, String
newAlamat, String newAlamat2, String newKota, int
newUmur) {
nama = newNama;
alamat = newAlamat;
alamat2 = newAlamat2;
kota = newKota;
umur = newUmur;
}
public void setNama (String newNama){
nama = newNama;
}
public void setAlmat (String newAlamat){
alamat = newAlamat;
}
public void setAlamat2 (String newAlamat2) {
alamat2 = newAlamat2;
}
public void setKota (String newKota) {
kota = newKota;
}
public void setUmur (int newUmur) {
umur = newUmur;
}
public String getNama (){
return nama;
}
public String getAlamat (){
return alamat;
}
public String getAlamat2 (){
return alamat2;
}
public String getKota (){
return kota;
}
public int getUmur (){
return umur;
}
public String toString(){
String str =
"Nama : "+ nama + "\n"+
"Alamat 1 : "+ alamat +
"\n"+
"Alamat 2 : "+ alamat2 +
"\n"+
"Kota : "+ kota + "\n"+
"Umur : "+ umur + "\n";
return str;
}
static void nilai(){
Komunitas t = new Komunitas ("Sukma
Murdani, S.Kom","Jalan Aru","Lubuk
Begalung","Padang",25);
System.out.println("\nSukma Murdani
sebagai Dosen Komunitas:\n");
System.out.println(t);
}
public static void main(String[] args) {
nilai();
}
}
public class Mahasiswa extends Komunitas {
String BP;
String strata;
String Jurusan;
/** Penciptaan Kelas Mahasiswa sebagai
Pewarisan dari Komunitas */
public Mahasiswa() {
super();
BP = "";
strata = "";
Jurusan = "";
}
public Mahasiswa (String newNama, String
newAlamat, String newAlamat2, String newKota, int
newUmur, String newBP, String newStrata,
String newJurusan) {
super(newNama, newAlamat, newAlamat2,
newKota, newUmur);
BP = newBP;
strata = newStrata;
Jurusan = newJurusan;
}
public void setBP (String newBP) {
BP = newBP;
}
public String getBP () {
return BP;
}
public void setStrata (String newStrata) {
strata = newStrata;
}
public String getStrata () {
return strata;
}
public void setJurusan (String newJurusan) {
Jurusan = newJurusan;
}
public String getJurusan() {
return Jurusan;
}
public String toString(){
String str =
"Nama : "+ nama + "\n"+
"Alamat 1 : "+ alamat +
"\n"+
"Alamat 2 : "+ alamat2 +
"\n"+
"Kota : "+ kota + "\n"+
"Umur : "+ umur + "\n"+
"NRP : "+ BP + "\n"+
"Strata : "+ strata +
"\n"+
"Jurusan : "+ Jurusan;
return str;
}
static void nilai(){
Mahasiswa t = new Mahasiswa ("James
Bond","Jalan Aru","Lubuk
Begalung","Padang",20,"10007","Strata
1","Teknik Informatika");
System.out.println("\nJames Bond sebagai
Mahasiswa Komunitas:\n");
System.out.println(t);
}
public static void main(String[] args) {
nilai();
}
}
Tidak ada komentar:
Posting Komentar