All Is Ready | Teknoloji, Yazılım ve Daha Fazlası

PHP Abstract Class Nedir? Ne İşe Yarar?

İçindekiler

PHP Abstract Class Nedir?

PHP dilinde, “abstract” anahtar kelimesi ile tanımlanan sınıflara “abstract class” denir. Abstract sınıflar, soyutlama yaparak soyutlamalı sınıfların (interfaces) oluşturulmasını sağlar. Abstract sınıflar, soyut bir şekilde tanımlanmış metodları içerir ve bu metodların nasıl gerçekleştirileceğini belirtmez. Bu metodları gerçekleştiren sınıflara “concrete class” denir. Concrete sınıflar, abstract sınıfların tanımladığı metodları kendilerine ait özellikler ile birlikte gerçekleştirirler.

PHP dilinde, abstract sınıflar şu şekilde tanımlanabilir:

abstract class AbstractClass {
abstract protected function getValue();
abstract protected function prefixValue($prefix);

public function printOut() {
print $this->getValue() . "\n";
}
}

Bu abstract sınıf, getValue() ve prefixValue($prefix) adlı iki tane soyut metodu içerir. Bu metodların nasıl gerçekleştirileceğini belirtmez, ancak printOut() adlı bir de metodu içerir. Bu metod, getValue() metodunu çağırarak döndürdüğü değeri yazdırır.

Abstract sınıfların tanımladığı metodları gerçekleştiren concrete sınıflar ise şu şekilde tanımlanabilir:

class ConcreteClass1 extends AbstractClass {
protected function getValue() {
return "ConcreteClass1";
}

public function prefixValue($prefix) {
return "{$prefix}ConcreteClass1";
}
}

class ConcreteClass2 extends AbstractClass {
public function getValue() {
return "ConcreteClass2";
}

public function prefixValue($prefix) {
return "{$prefix}ConcreteClass2";
}
}

Bu concrete sınıflar, AbstractClass sınıfını miras alarak, bu sınıfın tanımladığı soyut metodları gerçekleştirirler. Concrete sınıflar, soyut metodların nasıl gerçekleştirileceğini belirtirler ve bu metodları kendilerine ait özellikler ile birlikte gerçekleştirirler.