1. Inheritance adalah pembuatan kelas baru berdasarkan kelas yang sudah ada sebelumnya sehingga sifat-sifatnya dapat diturunkan.
2. Kelas yang diturunkan membentuk hubungan hirarki dengan kelas induknya.
3. Tujuan inheritance adalah membuat kelas baru yang lebih spesifik dengan menurunkan sifat dari kelas induk serta memakai ulang kode kelas induk.
2. Pendahuluan
Inheritance adalah pembuatan kelas baru berdasarkan
kelas yang sudah didefinisikan sebelumnya sehingga
sifat-sifatnya bisa diturunkan.
Kelas yang dibuat berdasarkan kelas induknya disebut
sub-class atau derived-class
Kelas yang diturunkan sifatnya atau induknya disebut
super-class atau ancestor-class (kelas induk)
3. Struktur Inheritance
Kelas yang diturunkan membentuk hubungan hirarki.
Contoh:
Super-class
Sub-Class
Kendaraan
Pesawat Mobil Motor
4. Tujuan Inheritance
Dengan dibuatnya sub-kelas dari induknya, akan tercipta kelas
baru yang memiliki hubungan “is-a” atau “adalah sebuah”.
Pada contoh sebelumnya mobil adalah sebuah kendaraan.
Dengan menurunkan sifat kendaraan, bisa dibentuk kelas baru
yaitu mobil yang lebih spesifik dan dapat disesuaikan.
Selain itu tujuannya adalah reusability atau pemakaian kembali
dari kode sebagai kelas basis.
5. Aksi dari Sub-Kelas
Aksi yang dapat dilakukan pada sub-kelas adalah:
1. Menggunakan atribut kelas basis atau induk
2. Membuat atribut tambahan yang spesifik di sub-kelas
3. Menggunakan method dari kelas basis atau induk
4. Membuat method tambahan baru di sub-kelas
5. Memanggil konstruktor dan destruktor di kelas basis
6. Konstruktor pada Inheritance
Konstruktor pada sub-kelas dapat dimodifikasi.
Konstruktor pada sub-kelas akan mengeksekusi
konstruktor pada kelas basis terlebih dahulu.
Akan tetapi, kelakukan konstruktor sub-kelas tidak perlu
mengikuti kelas basis karena dapat memilih aksi yang
perlu dilakukan.
7. Overriding dan Overloading
Overriding (redefine): override adalah cara mendefinisikan
ulang method yang sudah ada dari kelas basis ketika
diturunkan
Overloading: sedangkan overload adalah mendefinisikan
method yang sama tetapi dengan parameter yang berbeda
8. Overriding dan Overloading - 2
Contoh:
class Hewan
function bersuara() { … }
// mengembalikan “groarr”
Inherit Inherit
class Kucing extends Hewan
function bersuara() { … }
// mengembalikan “meow”
class Burung extends Hewan
function bersuara(string suara) { … }
// mengembalikan “sesuai input suara”
Overide Overload
9. Contoh Implementasi
Misalkan kita memiliki kelas hewan sebagai berikut
public class Hewan {
String nama;
int umur;
void bersuara() {
System.out.println("GROARRR!!");
}
void berlari() {
System.out.println("Drap! Drap! Drap!");
}
}
10. Contoh Implementasi - Inheritance
// sebelumnya telah didefinisikan kelas hewan, akan diturunkan ke kelas kucing
public class Kucing extends Hewan {
// kelas kucing merupakan turunan kelas hewan
// terdapat method bersuara pada hewan, dan dioverride di kelas kucing
public void bersuara() {
… // belum diimplementasi
}
public static void main(String args[]) {
Hewan a = new Hewan();
Kucing d = new Kucing();
… // operasi lain
}
}
11. Contoh Implementasi - Override
// sebelumnya telah didefinisikan kelas hewan, akan diturunkan ke kelas kucing
public class Kucing extends Hewan {
// terdapat method bersuara pada hewan, dan dioverride di kelas kucing
public void bersuara() {
System.out.println("Meong");
}
… // operasi lain
}
12. Contoh Implementasi - Overload
// sebelumnya telah didefinisikan kelas hewan, akan diturunkan ke kelas kucing
public class Kucing extends Hewan {
// terdapat method bersuara pada hewan, dan dioverload di kelas kucing
// tambahkan parameter di fungsi yang ingin di overload
public void bersuara(int kali) {
for(int i=0; i<kali; i++) { // fungsi dioverload dengan masukan kali
System.out.println("Meong"); // dan berubah menjadi mencetak meong beberapa kali
}
}
… // operasi lain
}