Php OOP Dersleri – Kalıtım

Merhaba arkadaşlar, Mobilhanem.com için hazırladığımız php derslerimizde bu ders Php de Kalıtım (İnheritance) yapısını göreceğiz.  Kalıtım sadece php ye özel bir konu olmayıp OOP yapısını destekleyen bütün programlama dillerinde vardır.  Kalıtım diğer bir adıyla inheritance veya miras alma olarak karşımıza çıkabiliyor. Kafamıza en yatkın miras alma ismiyle devam edelim. Günlük hayatta miras nedir nasıl miras alırız bilmeyen yoktur heralde 🙂 (Klasik babamın malı benim malım mantığı). Kalıtımda da ana sınıfımız baba, Kalıtacağımız, miras alacağımız sınıf ise çocuk oluyor.

Neden Kalıtım Yaparız ?

Peki neden kalıtım yaparız ? Örneğin bir öğrenci bilgi sistemi yazdığımızı düşünelim. Ö.b.s de hocalar ve öğrenciler diye iki adet sınıfımız olsun. Bu iki sınıfın temel özelliği genel anlamda bir kişiyi temsil etmesidir. Yani öğrencide bir kişidir hoca da. Biz burada kişi diye bir sınıf oluşturursak öğrenci ve öğretmeni bu sınıftan miras alarak oluşturabiliriz.

Kalıtımda miras alınarak oluşturulan sınıflar ana sınıfın methodlarını ve değişkenlerini kullanabilirler.  Bir önceki dersimizde public, private,protected anahtar kelimelerinin ne işe yaradığını söylemiştik. Dersi okumayanlar Buradan okuyabilirler.

Not: Php de bir sınıftan kalıtım yapmak için extends anahtar kelimesi kullanılır.

Örneğin: class Kalitilan extend Kalitilacak

Kullanacağımız bazı anahtar kelimeler:

self: Bulunduğumuz sınıfı işaret eder. $this ile aynıdır ama $this static methodlarda çalışmazken self statik methodlarda çalışır. Php 5 sürümünden sonra self yerine static kullanılması öneriliyor.

static:  static anahtar kelimesi static methodlar içerisinde $this yerine kullanılır.

parent:  Miras aldığımız sınıfta ana sınıfın  izin verilen özelliklerine erişebilmemizi sağlar.

const: Değeri değiştirilemeyen, sabit bir değişken oluşturmamızı sağlar.

extends:  Ana sınıftan yeni bir sınıf kalıtır.

Şimdi basitçe söylediğimiz örneği yapalım konu daha anlaşılır olsun.

Kişi sınıfımızı yazdık, method ve değişkenler için gerekli anahtar kelimeleri verdik.  Testimizi yaptığımızda sınıfımızın çalıştığınıda görürsünüz.

Şimdi öğrenci sınıfı oluşturalım ve kişi sınıfından extend edelim.

Öğrenci sınıfımızıda yazıp test ettiğimizde öğrenci bilgilerimizinde yazdığını görürüz. Şimdi Öğretmen sınıfımızı hazırlayalım.

 

Kodları yazıp çalıştırdığımızda aşağıdaki gibi bir çıktı alırız.

Peki Amaç Neydi ?

Evet arkadaşlar uğraştık birşeyler yaptık çalıştırdık ama elimize ne geçti ?

  • Kod kalabalığından kurtulduk. Öğrenci ve öğretmen için tekrar tekrar ad soyad fonksiyonları yazmadık.
  • Yeni bir sınıf oluşturmak istersek: Örneğin Müdür adında bir sınıf oluşturmak istersek elimizde kişi sınıfı olduğu için yine kişi sınıfından kalıtarak sadece müdüre özel methodlar ekleyerek işimizi kolaylaştırabiliriz.
  • Kod okunurluğumuzu artırmış olduk.

Aklıma geldiği kadar amacımızı yazdım arkadaşlar maddeler eklenebilir.

 

 

Bir php dersimizin daha sonuna geldik arkadaşlar.

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

 

Vehbi Akdoğan

Erzurum Atatürk Üniversitesi Bilgisayar Mühendisliği Mezunu
Web & Android Developer
#erzurumspor

Yorum Yaz

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?