PHP'de sınıflar arasında ilişkileri ifade etmek için "katılım" (inheritance) ve "türetme" (extend) kavramları kullanılır. Ayrıca, sınıfın başka sınıflar tarafından türetilmesini engellemek için "final" anahtar kelimesi kullanılabilir.
Katılım (Inheritance) ve Türetme (Extend):
<?php
// Ana sınıf (üst sınıf)
class AnaSinif {
public function selamla() {
echo "Merhaba, ben ana sınıf!
";
}
}
// Alt sınıf (alt sınıf), AnaSinif sınıfından türetiliyor.
class AltSinif extends AnaSinif {
// Ana sınıftan miras alınan selamla fonksiyonu bu sınıfta kullanılabilir.
// Ayrıca, alt sınıfa özgü yeni metodlar da eklenebilir.
public function yeniMetod() {
echo "Bu yeni bir metod!
";
}
}
// Alt sınıfı kullanarak bir örnek oluşturma
$ornek = new AltSinif();
// Ana sınıfa ait metodu çağırma
$ornek->selamla();
// Alt sınıfa ait yeni metod
$ornek->yeniMetod();
?>
Bu örnekte, AnaSinif
adında bir ana sınıf ve AltSinif
adında bir alt sınıf tanımlanmıştır. AltSinif
, AnaSinif
'dan türetilmiştir (extends AnaSinif
). Bu sayede, AltSinif
, AnaSinif
'ın özelliklerini ve metotlarını miras alır.
Final Anahtar Kelimesi:
Final anahtar kelimesi, bir sınıfın başka sınıflar tarafından türetilmesini engeller. İlgili sınıfın üzerine final
eklenerek kullanılır.
<?php
// Final anahtar kelimesi ile işaretlenmiş bir sınıf
final class FinalSinif {
public function selamla() {
echo "Merhaba, ben final sınıf!
";
}
}
// FinalSinif sınıfından türetilen bir alt sınıf (Bu hata verecektir.)
/*
class AltSinif extends FinalSinif {
public function yeniMetod() {
echo "Bu yeni bir metod!
";
}
}
*/
?>
Bu örnekte, FinalSinif
adında bir sınıf final
kelimesi ile işaretlenmiştir. Bu nedenle, bu sınıftan başka bir sınıf türetilmeye çalışıldığında hata alınır.