Keuntungan Inheritance
1. Metode didefinisikan pada super class, maka
perilaku perilaku tersebut tersebut secara otomatis otomatis diwariskan ke
subclass. Sehingga hanya perlu menulis method sekali dan bisa digunakan untuk
semua subclass.
2. Sekali
properti/field di definisikan di superclass, maka semua p p ro erti di wariskan
ke semua subclass. Superclass dan subclass berbagi properti – Subclass hanya
perlu mengimplementasikan jika ada perbedaan dengan parentnya.
Kapan Menggunakan
Enheritance
Kita baru perlu menerapkan
inheritance Kita baru perlu menerapkan inheritance pada saat kita jumpai ada
suatu class yang dapat diperluas dari class lain yang dapat diperluas dari
class lain.
Cara Mewariskan Kelas
Misal terdapat class Pegawai
public class Pegawai {
public String nama;
public double gaji;
public double gaji;
}
Misal terdapat class Manager
public class Manajer {
public String nama;
public double gaji;
ublic String departemen;
}
Dari 2 buah class diatas, kita
lihat class Manajer mempunyai data member yang identik sama dengan class
Pegawai, hanya saja ada tambahan data member departemen. Sebenarnya yang terjadi disana adalah class
Manajer merupakan perluasan dari class Pegawai dengan tambahan data member
departemen tambahan data member departemen. Disini perlu memakai konsep inheritance,
sehingga class Manajer dapat kita tuliskan seperti berikut :
public class Manajer extends
Pegawai {
public String departemen;
}
Kontrol Pengaksesan
Private : Variabel dan method yang dideklarasikan
Variabel dan method yang dideklarasikan private hanya bisa diakses oleh class
yg mendeklarasikan variabel dan method tersebut.
Protected : Protected
mempunyai kemampuan akses yang Protected mempunyai kemampuan akses yang lebih
besar daripada private dan default. Class diluar package boleh melakukan
melakukan subclass.
Public : Fungsi
yang dapat diakses oleh umum atau dapat diakses oleh siapa saja.
Cara Memanggil Metode dan Konstruktor
1.
#include <iostream>
2.
using namespace std;
3.
4.
class BangunDatar{
5.
protected:
6.
int lebar, tinggi;
7.
public:
8.
void set_values(int a, int b){
9.
lebar = a;
10.
tinggi = b;
11.
}
12.
};
13.
14.
class Tampilkan{
15.
public:
16.
void Say(string i){
17.
cout << '"' << i << '"' << endl;
18.
}
19.
};
20.
21.
class Kotak: public BangunDatar, public Tampilkan{
22.
public:
23.
int luas(){
24.
return (lebar * tinggi);
25.
}
26.
};
27.
28.
class Segitiga: public BangunDatar, public Tampilkan{
29.
public:
30.
int luas(){
31.
return (lebar * tinggi / 2);
32.
}
33.
};
34.
35.
int main(){
36.
Kotak kotakku;
37.
Segitiga segitigaku;
38.
39.
kotakku.set_values(3,4);
40.
segitigaku.set_values(3,4);
41.
42.
cout << kotakku.luas() << endl;
43.
cout << segitigaku.luas() << endl;
Contoh Program Menggunakan Konsep Pewarisan
class Parent {
public int x =
5;
}
class Child extends Parent {
public int x =
10;
public void
Info(int x) {
System.out.println("Nilai x sebagai parameter = " + x);
System.out.println("Data member x di class Child = " +
this.x);
System.out.println("Data member x di class Parent = " +
super.x);
}
}
public class NilaiX {
public static
void main(String args[]) {
Child tes =
new Child();
tes.Info(20);
}
}
Kelas Diagram
Output Inheritance
Note = output dari koding cara
memanggil metode dan konstruktor diatas