in

OOP Inheritance / pewarisan pada PHP

logo 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 .

Written by admin