PHP Class üzerinde Miras Alma

PHP Class üzerinde Miras Alma

Hepinize merhaba dostlarım :). Bu yazımda sizlere php de class lar üzerinde miras alma özelliğinden bahsedeceğim. Zor bir yanı yok tamamen mantık üzerinden gideceğiz dostlarım :). Heyecanlandığınızın farkındayım dostlarım. O halde hiç zaman kaybetmeden başlayalım derim :). Öncelikle gelelim miras alma nedir mantıksal tanımına bakalım :)

Miras Alma Nedir (extends) ?

Dostlarım teorik bir anlatım ezbere dayalı bir anlatım olarak görmeyin sakın. Amacım mantıksal bir şekilde bunu size anlatmaktır :). Olaya gelelim.

Bir Anne veya bir baba olsun. Vefat edince mal varlıkları olsun devredecekleri vs. şeyler kime kalır ? Evlatlarına kalır tabi :). İşte oop programlamada class larda kullanılan extends de böyledir dostlarım. Ana class tan türetilen class onun çocuğu oluyor ve ana class ın özelliklerini orada rahatlıkla kullanabiliyoruz :). Biraz teorik gibi kalacağını sezdim öyle olmasını istemiyorum örnekle pekiştirilmesini istiyorum. Gelin hızlıca onu da ayarlayalım


Örneğimizde Melisa isminde bir anne class olsun ve bunun Perizat adında bir çocuk class ı olsun. Gelin bunu ufak bir örnekle ayarlayalım

<?php

class Melisa{
  public $isim;  // değişken oluşturduk
  
  public function __construct(){
    $this->isim = "Melisa";  // isim değişkenine Melisa yazdırdık
    return $this->isim;  // geri döndürdük
  }
  
}

    // Perizat class ının Melisa Class ının çocuğu olarak belirttik
class Perizat extends Melisa{
 
  public $isim;  // değişken oluşturduk
  public function __construct(){
   $this->isim = "Perizat";  // değişkene perizat yazdırdık
  }
  
  public function ekrana_bas(){
    echo "Benim İsmim: ".$this->isim.".| Annemin İsmi: ".parent::__construct();
  }
  
}


$perizat = new Perizat();  // nesne oluşturduk
$perizat->ekrana_bas();  // nesne altından ekrana_bas methoduna ilerledik

?>

şekildeki gibi Melisa class ı oluşturup Perizat class ını da bundan türettik :). Ama aklınızda takılan bir soru var bunu sezdim dostlarım :)

Hocam parent::__construct(); ne demek ?

Kafanızda büyüteceğiniz bir şey yok dostlarım mantık gayet basit :). Burada diyoruz ki Anne class ının özelliğini alt class ta kullanmamıza yarıyor :). Biz burada dedik ki parent:: yani anne class a git __construct() ile de constuct() yani yapıcı method dan dönen değeri al dedik :). Tamamen bu kadar dostlarım :). Şimdi gelelim ekran çıktısına :)

Benim İsmim: Perizat.| Annemin İsmi: Melisa

şeklinde ekranımıza çıktı basacaktır :). Olay bu kadar basit dostlarım :). Gelin bir örnek daha yapalım ve konumuzu sonlandıralım

Bir araba class ı oluşturalım ve bundan da audi class ı türetelim. Bu audi nin çalışması için araba class ından stabil değerleri alıp kontrol ettirelim. Şartlar sağlanırsa araba çalışsın , sağlanmazsa araba çalışmıyor yazdırsın. Gelin bunun kodlamasını yapalım

<?php

class Araba{
  
  public $benzin; // benzin değişkeni oluşturduk
  public $aku;  // akü değişkeni oluşturduk
  
  public function __construct(){  
     $this->benzin = 100;  // yapıcı method ile 100 değeri atadık
     $this->aku = 100; // yapıcı method ile 100 değeri atadık
  }
  
  public function benzin_deger(){
    return $this->benzin; // benzin değerini geri döndürdük
  }
  
  public function aku_deger(){
    return $this->aku; // akü değerini geri döndürdük
  }

}

     // araba class ından audi class ı türetelim
class Audi extends Araba{

   public function bilgi(){
     $benzin = parent::benzin_deger(); // ana class tan benzin değerini alalım
     $aku = parent::aku_deger(); // ana class tan akü değerini alalım
     
     if($aku>=50 && $benzin>=20){
       // şart sağlanıyorsa burası çalışacak
       echo "Audi ile yola çıkmaya hazırsınız";
     }else{
       // şart sağlanmıyorsa burası çalışacak
       echo "Araba çalışmıyor. Akü ve/veya benzini kontrol edin";
     }
     
   }
}

$audi = new Audi();  // buradan nesne oluşturduk
$audi->bilgi();  // nesneden methoda eriştik

?>

evet dostlarım :). Bu şekilde örneğimiz de oluşturduk. parent:: ile zaten önceki örnekte de anlattığım gibi ana class taki methodlara erişip işlemleri yaptırdık :). Gelelim şimdi ekran çıktısına

Audi ile yola çıkmaya hazırsınız

ekranımıza Audi arabamız mesaj veriyor dostlarım :) Artık yola çıkabiliriz :).

Evet dostlarım bu yazımda anlatacaklarım bu kadar :). Sizden isteğim istikrarlı olmanız ve sürekli pratik yapmanızdır :). Umarım sizleri sıkmadan ve yalın bir anlatımla konuyu anlatmışımdır.

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıPHP Class üzerinde Erişim Methodları
Sonraki YazıJavascript Klavye Olayları
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz