PHP Dersleri #38 – OOP, Çok Biçimlilik (Polymorphism)


Herkese merhaba arkadaşlar, kodportali.com PHP derslerine kaldığı yerden tüm hızıyla OOP, Çok Biçimlilik (Polymorphism) ile devam ediyoruz.

 

PHP ‘de Çok Biçimlilik

Çok biçimlilik yani ‘Polymorphism‘ bir sınıftan başka bir sınıf türetilmesi ve türeyen sınıfın, türeten sınıfın tüm özelliklerine sahip olmasıdır. Bir sınıftan başka bir sınıf türetmek için arayüzler konusunda gördüğümüz ‘extends‘ anahtar kelimesini kullanacağız. Nesne görünürlüğü kuralları yine burda da geçerli olucak.


Hemen Bir Örnek İle Başlayalım

Bir örnek üzerinden giderek daha iyi kavrayalım. İnsan adında bir sınıfımız (class ‘ımız) olsun. Bu sınıfta insana ait olan özellik olsun. Boy, kilo, yaş vb. Bir de Erkek ve Kadın olmak üzere iki sınıfımız daha olsun ve bu sınıflardada cinsiyete özgü özellikler olsun. Kadınlar için saç şekli (dalgalı, kıvırcık gibi), erkekler için ise küpe takıp takmadığı olsun. Ve bu Erkek ve Kadın sınıflarımız İnsan sınıfı ile genişletilmiş olsun. Mantık bu, hadi koda geçelim.

Yukarıdaki örnektede gördüğünüz gibi ‘Human‘ yani İnsan sınıfımızda isim, soyisim ve yaş özellikleri bulunuyor. Bir de ‘class’ adında bir property bulunuyor fakat görünürlüğü private olduğu için türettiğimiz sınıflarda o özelliği çekemiyoruz. Kullanamıyoruz. Bu aynı şekilde fonksiyonlardada geçerli. Hatırlarsanız ‘interface‘ ‘lerde direk fonksiyon ve parametrelerini yazıyorduk bunda ise yapıcağı işlemide yazıyor. Fakat bunda miras kalmıyor, yani sizin bu fonksiyonları türettiğiniz sınıfa koyma veya kullanma zorunluluğunuz yok. Yapıcı’lar buna dahil değildir, eğer bir yapıcı koyduysanız, ona gerekli parametreleri vermeniz gerekir. Örneğimizde ‘parent‘ kelimesini görmüş olmanız gerekir. ‘parent‘ türkçe olarak ebeveyn anahtar kelimesi türetmek için kullandığımız sınıftaki yapıcıyı çağırmak için, bir de isteğe bağlı olarak o sınıftaki fonksiyonları çağırmamız için kullanılır. Örneğin ‘Wowan‘ sınıfında ebeveyn sınıftaki fonksiyonu ‘$this‘ sabit değişkeni ile çağırırken ‘Man‘ sınıfında ebeveyn sınıftaki aynı fonksiyonu ‘parent‘ ile çağırdık. Unutmayın türettiğimiz sınıftaki fonksiyonları, türetirken kullandığınız sınıfta çağıramazsınız. Yani ‘Man‘ sınıfındaki ‘writeWowan‘ fonksiyonunu ‘Human‘ sınıfında çağıramazsınız. Yukarıdaki örneğimizde ‘Wowan‘ ve ‘Man‘ sınıflarını ‘Human‘ sınıfı ile genişlettiğimiz içinde o sınıflar ‘Human‘ sınıfının public görünürlükteki özelliklere sahip olmuş oldu.

 

Evet bu dersimizin de burada sonuna geldik. Herhangi bir sorunuz olursa yorumlarda sorabilirsiniz.

Sitemizdeki tüm PHP dersleri için buraya tıklayabilirsiniz.

[Toplam:0    Ortalama:0/5]

Sizin Tepkiniz Nedir?

süper süper
1
süper
bilgilendirici bilgilendirici
0
bilgilendirici
beğenmedim beğenmedim
0
beğenmedim
beğendim beğendim
0
beğendim
Düşündürücü Düşündürücü
1
Düşündürücü
Anıl Mısırlıoğlu
Yazılım Mühendisi

0 Yorum

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bir format seçin
Kişisel Test
Kişiliğe dair bir şey ortaya çıkarmayı amaçlayan sorular dizisi
Basit Test
Bilgiyi kontrol etmek isteyen doğru ve yanlış cevaplı sorular dizisi
Anket
Karar vermek veya görüş belirlemek için oylama yapmak
Serbest Yazı
Yazılarınıza Görseller Bağlantılar Ekleyebilirsiniz
Liste
Klasik İnternet Listeleri
Geri Sayım Listesi
Klasik İnternet Geri Sayım Listeleri
Açık Liste
Kendi öğenizi gönderin ve en iyi sunum için oy verin
Oylanabilir Liste
En iyi liste öğesine karar vermek için yukarı veya aşağı basın
Fotoyla Anlatım
Kendi resimlerinizi yükleyin ve birşeyler anlatın
Video
Youtube, Vimeo veya Vine Kodları
Ses
Soundcloud veya Mixcloud İçerikleri
Görsel
Fotoğraf veya GIF
GIF
GIF Formatı