Nesne Tabanlı Programlama – Bölüm 4

 bcakir
 23 Ağustos 2011
 Php

Merhaba arkadaşlar daha önce nesne tabanlı programlama da kapsülleme (encapsulation) ile alakalı olan Bölüm 1Bölüm 2 ve Bölüm 3 konularını işlemiştik. Bu yazımızda ise kalıtım (inheritance) konusuyla alakalı olan extends ve final özelliklerini işleyeceğiz. Extends bir sınıfın başka bir sınıftaki özelliklere (metodlara ve değişkenlere) sahip olabilmesi için yapılır. Bu sayede önceki değişkenleri ve fonksiyonları tekrar yazmak zorunda kalmadan kullanabiliriz. Yani bir sınıf başka bir sınıfın özelliklerini bu yöntemle kullanma olanağı elde eder.

<?php
class Dikdortgen{
    public $boy=25;
    public $genislik=45;

    public function Cevre(){
        return ($this->genislik + $this->boy)*2;
    }

    public function Alan(){
        return $this->genislik * $this->boy;
    }
}

class Kare extends Dikdortgen{
    function __construct($kenar){
        $this->boy=$kenar;
        $this->genislik=$kenar;
        echo "Karenin Alanı: ".parent::Alan();
        echo "Karenin Çevresi: ".parent::Cevre();
    }
}
$dikdortgen = new Dikdortgen;
echo "Dikdortgenin Çevresi: ".$dikdortgen->Cevre();
echo "Dikdortgenin Alanı: ".$dikdortgen->Alan();
$kare = new Kare(30);
?>

Yukarıda Dikdortgen ve Kare sınıfları oluşturduk. Karenin de bir dikdörtgen olduğunu düşündüğümüzde, alan ve çevre hesabını Kare için tekrar yazmamıza gerek kalmadan Kare sınıfını Dikdortgen sınıfından extends edebiliriz. Kullanırken dikkat edilmesi gereken husus; extends ettiğimiz sınıftan öncekine parent:: ile erişebileceğimiz. Extends özelliğinden sonra final özelliğimizi de işleyerek bu makalemizi tamamlayalım.

Final özelliği bir metot veya sınıfın son metot veya sınıf olmasını sağlar. Başka bir ifadeyle kendisinden sonra başka bir metot veya sınıf gelemez.

<?php
class polo{
    public function polo_arabasi(){
        echo 'Ben bir poloyum.';
    }
}

class golf extends polo{
    public function golf_arabasi(){
        echo 'Ben bir golfüm.';
    }
}

final class passat extends golf{
    public function passat_arabasi(){
        echo 'Ben bir passatım.';
    }
}
$passat = new passat;
$passat->passat_arabasi();
$passat->golf_arabasi();
$passat->polo_arabasi();
?>

Yukarıdaki örnekte üç farklı model araba var ve Golf Polo’nun, Passat ise hem Polo’nun hemde Golf’ün özelliklerini içeriyor. Ayrıca final özelliği Passat’ın son araba olduğunu bize belirtiyor. Yani yukarıdaki örnekten biz bu seriden daha araba üretilmeyeceğini veya son üretilen arabanın Passat olduğu sonucunu çıkarabiliriz. Sınıftan final özelliğini kaldırılmadığımız sürece, bu sınıftan başka bir sınıf üretemeyiz. Denememiz halinde ise hata mesajı ile karşılaşırız. Burada yazımızın sonuna gelmiş olduk. OOP ile ilgili son bir makalemiz kaldı. Onuda işleyip bu konuyu tamamlayacağız.

 475 Okunma

Yazı hakkında görüşlerinizi belirtmek istermisiniz?

Daha fazla Php
Kapat