Abstact class’ına gönderdiğimiz bir fonksiyonunu bizim tanımladığımız işlemi diğer işlemlerde de gerçekleştiren işlem motorudur. Bu sayede biz bir Abstact class’ına gönderdiğimiz fonksiyonu kendisi biz demeden yazabilir. Nasıl ki class’ı class{..} şeklinde tanımlıyorsak abstract classıda abstract class{…} şeklinde tanımlarız.
Örnek:
<?php
abstract class absguneMerhaba
{
public function Merhaba($herseyim) {echo “Merhaba ” . $herseyim;}
public function GuleGule(){echo “Güle Güle”;}
}
class myMerhaba extends absgunemerhaba
{
public function HelloWorld($herseyim)
{
parent::Merhaba($herseyim);
}
public function hoscakal()
{parent::GuleGule();
}
}
$benimsinifim= new myMerhaba ();
$benimsinifim->HelloWorld(“, herşeyim”);
echo “<br>”;
$benimsinifim->hoscakal();
?>
İnheritance’ın Türkçe Anlamı “”miras” anlamına gelir. Başka bir mal varlığı(class ve metodları) kendi mal varlığınıza eklemek için kullanacağımız İnheritance için bir örnek yapalım.
<?php
class MerhabaDunya
{
public $adin = “Göksel”;
function Merhaba()
{echo “Merhabalar”;}
}
class MerhabaDunya2 extends MerhabaDunya
{
function Nasilsin()
{ echo “Nasılsın ” . $this -> adin . “?”;}
}
$classyazdir= new MerhabaDunya2();
$classyazdir ->Merhaba();
echo”<br>”;
$classyazdir ->Nasilsin();
?>
Override referans aldığımız class içerisindeki bizim belirtiğimiz fonksiyonun yeniden tanımlanması için kullanılır. Bunun için classı belirtip sanki yeni bir fonksiyon tanımlıyormuş gibi aynı isimde tanımlarız.
<?php
class Merhaba1
{
public $isim= “Ziyaretçi”;
function Merhaba() {echo “Hoş geldiniz” . $isim;}
}
class Merhaba2 extends Merhaba1
{
function Merhaba()
{echo “Merhabalar ” . $this->isim;}
}
$classim = New Merhaba2 ();
$classim -> Merhaba ();
?>
Class içerisinde değişken tanımlamak için puclic ile tanımlanmıştık.
class adi{public $degisken=”deger”;}
Ayrıca daha önceki bölümlerimiz de public yerine protected ve private kullansak herhangi bir sorun teşkil etmeyeceğini söylemiştim. Ayrıntı:Public, protected ve private içerisinde aynı zamanda fonksiyonda tanımlayabiliriz.
Şimdi ise public, protected ve private’in nerelerde kullanılacağanı inceleyelim;
Public: Herhangi bir class içerisinde değişkene tanımlayıp, değer vermeki için kullanılır. Bütün dosyalar tarafından erişilebilir bir değişken haline gelir.
Protected: Herhangi bir class içerisinde değişken veya fonksiyona dışarıdan erişelemez. Sadece kendi sınıfı içerisinde referans alınarak kullanılırlar.
Private: Herhangi bir class içerisinde değişken veya fonksiyona dışarıdan erişelemez.Referans alınarak kullanılamaz.
OOP yani Nesne Yönelimli Programlamada class tanımlarız. Classlar şu şekilde tanımlanırlar;
<?php
class sinifinadi
{
..
..
}
?>
Bir class değişken ve method’lardan oluşuyor. Methodlar fonksiyonlar ile gösterilir.
<?php
class sinifinadi
{
public $degisken1, $degisken2
function fonksiyonismi()
{
..
..
}
}
?>