OOP Inheritance / pewarisan pada PHP
Kali ini membahas seputar OOP , kali ini saya akan membahas mengenai inheritance atau pewarisan pada OOP PHP . Pewarisan atau inheritance atau kelas turunan ini, jadi kita dapat menurunkan property dan method yang dimilikinya kepada kelas lain . Inheritace seperti hanya kita membuat sebuah organigram . Dimana ada class yang paling atas atau bisa di sebut parent class dan class yang diwariskan yaitu child class .
Untuk mewarisakan atau menurunkan class kita menggunakan kata kunci extedns pada kelas adanya penulisan sebagai berikut :
class induk {
//...isi class induk
}
class anak extends induk
{
//... class anak bisa mengakses
//... property dan method class induk
}
Untuk lebih memahami saya akan mengabil contoh kelas hewan yang memiliki property nama , dan metode setNama dan getNama yang nantinya bisa di akses oleh kelas anak , contoh program pewarisanya seperti berikut
<?php
class hewan{
var $nama;
function setNama($nama){
$this->nama=$nama;
}
function getNama(){
return $this->nama;
}
}
class anakHewan extends hewan{
}
$AnakHewan=new anakHewan();
$AnakHewan->setNama("Kucing");
echo $AnakHewan->getNama();
?>
Disana terdapat kelas anak hewan yang mewarisi kelas hewan .
$AnakHewan=new anakHewan();
$AnakHewan->setNama("Kucing");
echo $AnakHewan->getNama();
Untuk memangil method method yang ada di class parent kita tinggal gunakan saja sama seperti biasannya memanggil method .
Tidak semua property dan method yang bisa di warisakan . child class tidak bisa mewarisai parent class yang memiliki keyword private . Contoh seperti di bawah ini
<?php
class hewan{
var $nama;
private function setNama($nama){
$this->nama=$nama;
}
private function getNama(){
return $this->nama;
}
}
class anakHewan extends hewan{
}
$AnakHewan=new anakHewan();
$AnakHewan->setNama("Kucing");
echo $AnakHewan->getNama();
?>
Fatal error: Uncaught Error: Call to private method hewan::setNama() from context '' in C:\xampp\htdocs\latihan\pewarisan.php:15 Stack trace: #0 {main} thrown in C:\xampp\htdocs\latihan\pewarisan.php on line 15
jika kita jalankan maka akan ada pesan error, karena kelas child tidak bisa mewaris method atau property yang memiliki keyword private . Sekarang gimana masalahnya kalo class parent dan class child memiliki method yang sama dan kita ingin mengakses kedua duanya . Misalnya saya ambil contoh kita memiliki method getNama dua .
<?php
class hewan{
var $nama;
function setNama($nama){
$this->nama=$nama;
}
function getNama(){
return $this->nama;
}
}
class anakHewan extends hewan{
var $nama;
function getNama(){
echo hewan::getNama();
return "<br>".$this->nama;
}
}
$AnakHewan=new anakHewan();
$AnakHewan->setNama("Gajah");
echo $AnakHewan->getNama();
?>
Untuk mengakses method yang ada di kelas parent kita gunakan
hewan::getNama();
atau bisa juga
parent::getNama();
Biak itu dia membahas mengenai inheritance pada OOP PHP . semoga bermanfaat dan sampai jumpa .
Belum ada Komentar untuk "OOP Inheritance / pewarisan pada PHP"
Posting Komentar