Inheritance 
Pemrograman 
Berorientasi Objek 
Georgius Rinaldo 
dodo@kuliahkita.com
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)
Struktur Inheritance 
Kelas yang diturunkan membentuk hubungan hirarki. 
Contoh: 
Super-class 
Sub-Class 
Kendaraan 
Pesawat Mobil Motor
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.
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
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.
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
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
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!"); 
} 
}
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 
} 
}
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 
}
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 
}

OOP - Inheritance

  • 1.
    Inheritance Pemrograman BerorientasiObjek Georgius Rinaldo dodo@kuliahkita.com
  • 2.
    Pendahuluan Inheritance adalahpembuatan 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 Kelasyang diturunkan membentuk hubungan hirarki. Contoh: Super-class Sub-Class Kendaraan Pesawat Mobil Motor
  • 4.
    Tujuan Inheritance Dengandibuatnya 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 Misalkankita 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 }