PHP OOP Yapısı Final Kavramı
Merhaba. Bu yazımda Object Oriented Programmin yapısında bulunan final kavramından bahsedeceğim. Final ifadesi, bir class'ın erişim türünü belirlemektedir. Eğer bir class final deyimiyle birlikte tanımlanırsa, bu class miras alınarak başka bir class oluşturulamaz. Yani final kavramı bir class'ın extends edilmesinin önüne geçer.
Aşağıdaki örneği inceleyelim.
final class Sporcu { public $adSoyad; public $yas; public function basariListele() { // İşlemler } } class Futbolcu extends Sporcu { public $takim; public $deger; public function transferOl() { // İşlemler } }
Bu örneğe göre Sporcu adında bir class oluşturdum. Ancak dikkat ederseniz Sporcu class'ının başında final ifadesi var. Ardından Sporcu class'ını miras alarak Futbolcu class'ı oluşturmaya çalıştım. Bu kodları çalıştırdığımız zaman aşağıdaki şekilde bir hata metniyle karşılaşacağız.
Fatal error: Class Futbolcu may not inherit from final class (Sporcu)
Hata metnindeki açıklama "Futbolcu class'ı, final olarak tanımlanan Sporcu class'ı miras alınarak oluşturulamaz" diyor. Yani siz bir class'ın başına final ifadesi yazarsanız, artık o class yapısı miras alınarak başka bir class oluşturulamaz. Yani final ifadesi ile miras alma işleminin önüne geçmiş olursunuz.
Soru ve görüşlerinizi yorum olarak belirtebilirsiniz. Hayırlı çalışmalar dilerim.