PHP OOP Kalıtım
OOP ile yazılım geliştirmenin önemli bir özelliği olan metot ve özellikleri tekrar kullanmaya imkan veren kalıtım ile ilgili bilgiler yer almaktadır.
PHP OOP kalıtım nedir?
Kalıtım nesneye ait public veya protected özellik ve metotların başka bir nesne tarafından devralınmasıdır.
Kalıtım özelliğiyle bir sınıf başka bir sınıfın özellik ve metotlarını kalıtım yoluyla devralarak kullanabilir veya üzerine ekleme yaparak genişletebilir.
Bu özellikle birlikte geliştirilen yazılımın genişletilebilir olması sağlanır.
Örnekte Ogrenci sınıfı yer almaktadır.
<?php
class Ogrenci {
protected static $ogrenciSayisi = 0;
protected $ogrenciID = 0;
protected $ogrenciAdi = "";
protected $ogrenciSoyadi = "";
public function __construct($oAdi, $oSoyadi) {
$this->ogrenciID = self::$ogrenciSayisi + 1;
$this->ogrenciAdi = $oAdi;
$this->ogrenciSoyadi = $oSoyadi;
self::$ogrenciSayisi++;
}
public function ogrenciBilgileri() {
return $this->ogrenciID . " - " . $this->ogrenciAdi . " " . $this->ogrenciSoyadi . "<br />";
}
public static function ogrenciSayisi() {
return self::$ogrenciSayisi;
}
}
?>
Üniversite öğrencisi de bir öğrenci olduğundan Ogrenci sınıfındaki özellik ve metotları devralarak genişletebiliriz.
Örnekte UniversiteOgrencisi sınıfı yer almaktadır.
<?php
class UniversiteOgrencisi extends Ogrenci {
protected $ogrenciBolum = "";
}
?>
Üniversitelerde farklı bölümünde öğrenim gören öğrenciler hem bölümünün öğrencisi hem de Üniversite öğrencisidir.
Not: Türeyen sınıf temel sınıfın özellik veya metotlarına parent anahtar kelimesi ile erişir.
Örnekte BilgisayarMuh sınıfı yer almaktadır.
<?php
class BilgisayarMuh extends UniversiteOgrencisi {
public function __construct($oAdi, $oSoyadi) {
parent::__construct($oAdi, $oSoyadi);
$this->ogrenciBolum = "Bilgisayar Mühendisliği";
}
}
?>
Örnekte MakineMuh sınıfı yer almaktadır.
<?php
class MakineMuh extends UniversiteOgrencisi {
public function __construct($oAdi, $oSoyadi) {
parent::__construct($oAdi, $oSoyadi);
$this->ogrenciBolum = "Makine Mühendisliği";
}
}
?>
Örneklerdeki gibi bir sınıf kalıtım ile genişletilebilir.
<?php
$ben = new BilgisayarMuh("Yusuf Sefa", "SEZER");
echo $ben->ogrenciBilgileri();
$sinan = new MakineMuh("Sinan", "SEZER");
echo $sinan->ogrenciBilgileri();
echo "Toplam öğrenci sayısı : " . Ogrenci::ogrenciSayisi();
?>
Kalıtım özelliğini kullanırken temel sınıftaki özellik ve metotların iyi bir şekilde oluşturulması/tasarlanması gerekir.
Temel sınıf olabildiğince ortak özellik ve metotları içermelidir.
Bir armut veya muz sınıfı oluşturmak istendiğinde özellik ve metotları iyi oluşturulmuş/tasarlanmış meyve sınıfı kalıtım özelliği için faydalı olacaktır.
PHP OOP Derslerine buradan ulaşabilirsiniz…
Hayırlı günler dilerim.