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

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 php ç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.

Konuyla ilgili yorumlarınızı, görüş ve önerilerinizi konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altındaki yorum bölümünden sorabilirsiniz.

PHP çok biçimlilik – OOP Dersleri konusunu bu yazımızda gördük. Aşağıdaki linke tıklayarak daha bir çok içeriğe ulaşarak bilginizi artırabilirsiniz. Ayrıca aşağıdaki Sosyal Medya linklerine tıklayarak bizi Sosyal Medya üzerinden de takip edebilirsiniz.

https://yazilimdelisi.com/category/web-gelistirme/php/

Sosyal Medya Hesaplarımız

instagram logo
twitter logo

Son Eklenen Yazılar

Bir Cevap Yazın

%d blogcu bunu beğendi: