Veysel Uğur KIZMAZ

PHP ile Kalıtım - Extend

16.06.2012Okunma Sayısı: 5748Kategori: PHP

 Bu makalemizde PHP’de kalıtım konusunu ve extend keyword’ünü inceleyeceğiz.

 
Kısaca bir sınıfın başka bir sınıftaki methodlara ve değişkenlere sahip olabilmesi için yapılan işlemdir. Bir sınıf, daha genel bir kavramı ifade eden bir sınıfın elemanlarına sahip olarak tekrar tanımlamak durumunda kalmamaktadır. Bu işlem için PHP’de extends keywordü kullanılmaktadır. Bir örnek ile bu işlemin nasıl yapıldığını inceleyelim.
 
Örneğin Kare ve Dikdortgen sınıfları oluşturalım. İki sınıfta da alan hesabını yapan Alan(), çevre hesabını yapan Cevre() isminde iki fonksiyon oluşturalım.
 
Karenin de bir dikdörtgen olduğunu düşündüğümüzde, alan ve çevre hesabını Dikdortgen sınıfında yazıp Kare’yi de Dikdortgen sınıfından extend edebiliriz.
 
Bu işlemin nasıl yapıldığını inceleyelim:
 
 
  1. <?php
  2.             class Dikdortgen
  3.             {
  4.                         private $en;
  5.                         private $boy;
  6.                        
  7.                         function __construct($en$boy)
  8.                         {
  9.                                    $this->en = $en;
  10.                                    $this->boy = $boy;
  11.                         }
  12.                         public function Alan()
  13.                         {
  14.                                    return $this->en * $this->boy;
  15.                         }
  16.                         public function Cevre()
  17.                         {
  18.                                     return 2 * ($this->en + $this->boy);
  19.                         }
  20.             }
  21.            
  22.             class Kare extends Dikdortgen
  23.             {
  24.                         function __construct($kenar)
  25.                         {
  26.                                    parent::__construct($kenar$kenar);
  27.                         }
  28.             }
  29. ?>
 
 
Burada dikkat edilmesi gereken en önemli nokta, Dikdortgen sınıfı Kare sınıfından extend edildiğinde Kare sınıfının constructorının çağırılma şeklidir. parent:: ile kalıtım alınan sınıfın elemanlarına (constructor, değişken, method) erişebiliriz.
 
Classlarımızı bir örnekte deneyelim.
 
 
  1. $kare = new Kare(10);
  2. echo "Alan : " . $kare->Alan()."<br/>";
  3. echo "Çevre : " . $kare->Cevre();
Kodumuzu çalıştırdığımızda ekran çıktısı aşağıdaki gibi olacaktır.
 
 
 
 
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com