Pengertian Inheritance Cara Menggunakan Plus Contoh Program

Diposting pada

Pengertian Inheritance Cara Menggunakan Plus Contoh Program : Inheritance, adalah Proses pewarian data dan method dari suatu kelas kepada kelas lain. Kelas yang mewariskan disebut super class, sedangkan kelas yang diwariskan sering disebut sub class.

Inheritance
Inheritance

Dengan inheritance ini , maka class yang baru atau subclass pasti akan mirip dengan class yang sudah lama (superclass) Akan Tetapi tetap memiliki karakteristik yang baru. Contoh pewarisan : class kendaraan merupakan superclass bagi class mobil, truk dan bis.

Inheritance atau Pewarisan/Penurunan adalah konsep pemrograman dimana sebuah class dapat ‘menurunkanproperty dan method yang dimilikinya kepada class lain. Konsep inheritancedigunakan untuk memanfaatkan fitur ‘code reuse’ untuk menghindari duplikasi kode program.

Konsep inheritance adalah membuat sebuah struktur atau membuat ‘hierarchyclass dalam kode program.

Class yang akan ‘diturunkan’ bisa disebut sebagai class induk (parent class), super class, atau base class. Sedangkan untuk class yang ‘menerima penurunan’ juga bisa disebut sebagai class anak (child class), sub class, derived class atauheir class.

Tidak semua property dan method dari class induk akan diturunkan.

Seperti Property dan juga method dengan hak akses private, tidak akan diturunkan kepada class anak. Hanya property dan method dengan hak akses protected dan public saja yang bisa diakses dari class anak.

Baca Juga ⇒ Pengertian Hikayat, Ciri, Unsur Serta Jenisnya

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:

1
2
3
4
5
6
7
8
9
class induk {
   //...isi class induk
}
class anak extends induk
{
   //... class anak bisa mengakses
   //... property dan method class induk
}

Agar lebih mudah dipahami, kita akan langsung masuk kedalam contoh program penggunaan inheritance/penurunan di dalam PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
// buat class induk: komputer
class komputer {
 
   public $merk;
   public $processor;
   public $memory;
 
   public function beli_komputer() {
     return "Beli komputer baru";
   }
}
 
// turunkan class komputer ke laptop
class laptop extends komputer {
 
   public function lihat_spec() {
     return "merk: $this->merk, processor: $this->processor,
     memory: $this->memory";
   }
}
 
// buat objek dari class laptop (instansiasi)
$laptop_baru = new laptop();
 
// isi property objek
$laptop_baru->merk = "acer";
$laptop_baru->processor ="intel core i5";
$laptop_baru->memory = "2 GB";
 
//panggil method objek
echo $laptop_baru->beli_komputer();
echo "<br />";
echo $laptop_baru->lihat_spec();
?>

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.

Dalam model class laptop, kita juga dapat mengakses keseluruhan property dan method apapun yang ada dalam class komputer selama kita memiliki hak akses public atau protected.

Cara Membuktikannya

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’:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
// buat class komputer
class komputer {
   protected function beli_komputer() {
     return "Beli komputer baru";
   }
}
 
// turunkan class komputer ke laptop
class laptop extends komputer {
   protected function beli_laptop() {
     return "Beli laptop baru";
   }
}
 
// turunkan class laptop ke chromebook
class chromebook extends laptop {
   protected function beli_chromebook() {
     return "Beli chromebook baru";
   }
 
   public function beli_semua(){
     $a = $this->beli_komputer();
     $b = $this->beli_laptop();    
     $c = $this->beli_chromebook();
     return "$a <br /> $b <br /> $c";
   }
}
 
// buat objek dari class laptop (instansiasi)
$gadget_baru = new chromebook();
 
//panggil method objek
echo $gadget_baru->beli_semua();
 
// $gadget_baru->beli_komputer();
// Fatal error: Call to protected method komputer::beli_komputer()
?>

Dalam contoh diatas, saya membuat class komputer yang diturunkan ke class laptop , dan kemudian diturunkan lagi ke class Chromebook . Dari dalam class Chromebook ini kemudian saya memanggil method dari class diatasnya.

Kesimpulan

Jika kita perhatikan, dalam setiap method selain dari method beli_semua(), memiliki hak akses protected. Hak akses protected ini ‘menghalangi’ kode program lain untuk mengaksesnya, selain classturunan.

Pada baris terakhir, kali ini saya menyisipkan sebuah 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:

1
2
3
4
<?
$gadget_baru->beli_komputer();
// Fatal error: Call to protected method komputer::beli_komputer()
?>

Inilah yang dimaksud dengan enkapsulasi dalam OOP. Membatasi method yang tidak boleh diakses akan membuat kode program menjadi lebih terstruktur.

Demikian sedikit penjelasan mengenai Pengertian Inheritance dan Polomorfisme pada Java Plus Contoh Program, Semoga bermanfaat dan selamat mencoba. Admin berharap adanya kritik dan saran yang membangun semoga lebih  baik lagi.

≡ SUMBER : Dari  berbagai sumber*