Pengertian Inheritance
(Pewarisan) dalam OOP
KONSEP PEWARISAN (INHERITANCE )
PADA OOP
Sebagai Informasi bahwa Ciri khas Pemrograman
Berorientasi Objek (OOP) ada tiga hal yaitu:
1. Enkapsulasi ( Pembungkusan )
2. Inheritance ( Pewarisan )
3. Polymorphism ( Perbedaan Bentuk )
Pengertian Inheritance (Pewarisan)
Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman
dimana sebuah class dapat ‘menurunkan’ property dan method yang
dimilikinya kepada class lain. Konsep inheritance digunakan untuk
memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.
Konsep inheritance membuat sebuah struktur atau ‘hierarchy’ class dalam kode
program. Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent
class), super class, atau base class. Sedangkan class yang ‘menerima
penurunan’ bisa disebut sebagai class anak (child class), sub class, derived
class atauheir class.
DEKLARASI PEWARISAN
(INHERITANCE)
Deklarasi yang digunakan adalah dengan menambahkan kata kunci extends
setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya.
Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin
melakukan perluasan class.
public class B extends A { … }
Pada saat dikompilasi, Kompiler Java akan membacanya sebagai subclass dari
class Object.
public class A extends Object { … }
KEUNTUNGAN
INHERITANCE
1. 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.
2. Programmer Java dapat mendefinisikan superclass khusus yang
bersifat generik, yang disebut abstract class, untuk mendefinisikan
class dengan behaviour dan state secara umum.
ISTILAH
INHERITANCE
Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi
subclass.
Superclass Superclass digunakan untuk menunjukkan hirarki class
yang berarti class dasar dari subclass/class anak.
Subclass Subclass adalah class anak atau turunan secara hirarki
dari superclass.
Super Keyword ini digunakan untuk memanggil konstruktor dari
superclass atau menjadi variabel yang mengacu pada superclass.
Methode Overriding Pendefinisian ulang method yang sama pada
subclass
Lanjutan
Dalam inheritance, method overriding berbeda dengan method
overloading. Kalau method overriding adalah mendefinisikan kembali
method yang sama, baik nama method maupun signature atau parameter
yang diperlukan dalam subclass, kalau method overloading adalah
mendefinisikan method yang memiliki nama yang sama, tetapi dengan
signature yang berbeda dalam definisi class yang sama.
Cara Penggunaan Inheritance dalam PHP
Di dalam PHP, inheritance / penurunan dari sebuah class kepada class lain
menggunakan kata kunci: ‘extends’, dengan penulisan dasar sebagai berikut:
Contoh
Agar lebih mudah
dipahami, kita akan
langsung masuk
kedalam contoh
program penggunaan
inheritance/penurun
an di dalam PHP:
Lanjutan
Dalam contoh kode diatas, saya membuat class komputer dengan
beberapa property dan sebuah method. Property class komputer belum
berisi nilai apa-apa.
Dibawah class komputer, saya membuat class laptop extends class
komputer. Disini saya menurunkan class komputer kedalam class
laptop. Di dalam class laptop, kita bisa mengakses seluruh property dan
method apapun dari class komputer selama memiliki hak akses public
atau protected.
Lanjutan
Untuk membuktikan hal tersebut, saya membuat objek
$laptop_baru dari class laptop. Perhatikan bahwa kita bisa
mengakses property $merk, $processor, dan$memory yang
semuanya adalah milik class komputer, bukan class laptop. Method
beli_komputer() juga sukses diakses dari objek $laptop baru. Inilah
yang dimaksud dengan inheritance/penurunan class dalam OOP.
PHP tidak membatasi berapa banyak ‘penurunan objek’ yang bisa
dilakukan, dalam contoh berikut, saya membuat 3 buah class yang saling
‘menurunkan’:
Dalam contoh diatas, saya membuat class komputer yang diturunkan kepada
class laptop, dan kemudian diturunkan lagi kepada class chromebook. Dari
dalam class chromebook ini kemudian saya memanggil method dari class
diatasnya.
Pada baris terakhir, saya menyisipkan kode program untuk mencoba
mengakses method beli_komputer() . Kode ini sengaja saya beri tanda
komentar. Jika anda menghapus tanda komentar, PHP akan mengeluarkan error
yang menyatakan kita tidak bisa mengakses method dengan hak akses
protected:
Lanjutan