Sınıf Soyutlama

PHP soyut sınıf ve yöntemlerin kullanımını mümkün kılmıştır. Soyut olarak tanımlanmış bir sınıf örneklenemez ve en az bir soyut yöntem içeren bir sınıf da soyut olmalıdır. Soyut olarak tanımlanmış yöntemler o yöntemlerin imzasıdırlar, gerçeklemenin bütününü temsil edemezler.

Soyut bir sınıftan kalıtsal özellikler devralınırken, ebeveyn sınıf bildiriminde soyut olarak bildirilmiş tüm yöntemlerin çocuk sınıf tarafından da tanımlanmasına ek olarak, kalıtım ve bağımsız değişken yerlerinin uyumluluğu kurallarına da uyması gerekir.

Örnek 1 - Soyut sınıf örneği

<?php
abstract class SoyutSınıf
{
// Genişletilen sınıfı bu yöntemi tanımlamaya zorla
abstract protected function değeriAl();
abstract protected function
önekDeğeri($önek);

// Ortak yöntem
public function yazdır() {
print
$this->değeriAl() . "\n";
}
}

class
SomutSınıf1 extends SoyutSınıf
{
protected function
değeriAl() {
return
"SomutSınıf1";
}

public function
önekDeğeri($önek) {
return
"{$önek}SomutSınıf1";
}
}

class
SomutSınıf2 extends SoyutSınıf
{
public function
değeriAl() {
return
"SomutSınıf2";
}

public function
önekDeğeri($önek) {
return
"{$önek}SomutSınıf2";
}
}

$class1 = new SomutSınıf1;
$class1->yazdır();
echo
$class1->önekDeğeri('FOO_') ."\n";

$class2 = new SomutSınıf2;
$class2->yazdır();
echo
$class2->önekDeğeri('FOO_') ."\n";
?>

Yukarıdaki örneğin çıktısı:

 SomutSınıf1 FOO_SomutSınıf1 SomutSınıf2 FOO_SomutSınıf2 

Örnek 2 -Soyut sınıf örneği

<?php
abstract class AbstractClass
{
// Soyut sınıfımız sadece gerekli bağımsız değişkenleri tanımlamalı
abstract protected function prefixName($name);

}

class
ConcreteClass extends AbstractClass
{

// Çocuk sınıfımız seçimlik bağımsız değişkenleri tanımlamalı

Yukarıdaki örneğin çıktısı:

 Mr. Pacman Mrs. Pacwoman 
To Top