Php Dersleri
2026 Güncel

Php OOP Dersleri – Çok Biçimlilik (Polymorphism)

3 dk okuma süresi 889 görüntülenme 28.09.2023 4.9 (18 değerlendirme)

Merhaba arkadaşlar , phphocasi.com.tr üzerinden yayınladığımız php eğitimlerinde bu ders Çok Biçimlilik (Polymorphism) konusuna değineceğiz.  Bir programlama dilinin OOP standartlarına uygun olması için aranan belli başlı şartlar vardır. Bu şartlardan birincisini bir önceki dersimizde Php OOP Dersleri – Kalıtım dersimizde anlatmıştık. Şimdi bu kurallardan ikincisi olan çok biçimlilik konusunu anlatacağız.

Çok Biçimlilik (Polymorphism)

Bir örnek üzerinden gidecek olursak bizim hayvan adında classımız olsun. Bu classta hayvana ait olan hayvanSesi adında bir değişkenimiz olsun. Artık hayvan sınıfından türeteceğimiz inek sınıfı, kuzu sınıfı gibi sınıflarda hayvanSesi değişkenimiz o hayvanın sesini gösterecektir. Ana sınıfımız olan hayvan sınıfındaki hayvanSesi değişkeni birçok hayvanın sesini göstererek çok biçimliliği sağlamış olacak.

Örneğimizi yapacak olursak:

class Hayvan { private $hayvanSesi public function __construct($ses) { $this->hayvanSesi = $ses } public function getHayvanSesi() { return $this->hayvanSesi } }

Şimdi hayvan sınıfından Inek ve kuzu adında iki sınıf türetelim.

class Inek extends Hayvan { public function __construct(){ parent::__construct("Möö :) ") } } class Kuzu extends Hayvan { public function __construct(){ parent::__construct("Mee :)") } } 

Şimdi ses adında bir class oluşturup polymorphism işlemimizi gerçekleştirelim.

class Ses { public function __construct(Hayvan $ses) { echo $ses->getHayvanSesi()."<br/>" } }

Daha sonra ses sınıfımız aracılığıyla hayvan sınıfından türetilen sınıfların sesini yazdıralım.

$inek = new Inek() $kuzu = new Kuzu() new Ses($inek) // Möö :) new Ses($kuzu) // Mee :)

Yukarıda Ses sınıfının constructor’ı Hayvan sınıfı tipinde bir değişken alıyor. Ama biz bu constructor’a Inek ve Kuzu sınıflarından oluşturduğumuz instance’ları yollayabiliyoruz. Bunun sebebi Php dilinin çok biçimliliği destekliyor olmasıdır. Inek ve Kuzu sınıfı Hayvan sınıfından extends edip oluşturuluduğu için Hayvan sınıfı değişkeni gibi kullanabiliyoruz.

Sonuç olarak kodu çalıştırdığınızda ekranda inek sesi ve kuzu sesi yazdığını görmüş oluruz. Bu sayede ana sınıfımızdaki çok biçimliliği sağlamış oluruz.

Bir diğer yöntem olara abstract class ve methodlarla da polymorphism yapabiliriz. Abstract methodları anlatmadığım için bu yöntemi abstract methodları anlatırken göstereceğim. Takipte kalın ?

Bir dersimizin daha sonuna geldik. Bir sonraki dersimizde görüşmek üzere ?

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm php dersleri için tıklayınız..

53
Makaleyi Değerlendirin

Bu makale işinize yaradı mı? Puan verin!

Okuyucu puanları makalelerimizin arama motorlarında öne çıkmasına ve güncellenmesine destek olur.

4.9 / 5 (Toplam 18 oy kullanıldı)

Sıkça Sorulan Sorular (SSS)

Bu makale ve teknik konuyla ilgili detaylar

Php OOP Dersleri &#8211; Çok Biçimlilik (Polymorphism) makalesindeki yöntemler hangi sürümlerde geçerlidir?

İçerikteki çözümler ve kod örnekleri güncel PHP 8.x ve modern web standartları referans alınarak test edilmiştir.

Bu konuda başka makalelere nereden ulaşabilirim?

Sayfanın sağ tarafındaki Kategori Menüsü ve ilgili yazılar alanından benzer teknik rehberleri inceleyebilirsiniz.