Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

subclass mantığı?

Merhabalar;

İki tane soru sormak istiyorum da;
Bir sınıftan bir alt sınıf türetmenin mantığı nedir acaba? Parent sınıfımda yeni bir metot tanımlasam daha kolay değil mi?

İkinci sorum da;
Bu türetilen sınıfı include ettiğim zaman üst sınıfı da include etmem gerekiyor mu? Sadece türettiğim sınıfı kullanıcam diyelim, üst sınıfı da include etmem gerekiyor değil mi?
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • fka adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    70 cevap - 0 soru
    İkinci sorundan başliyim,

    php'de autoloader belirlediğin zaman bu autoloader tüm include işlemlerini yapar, fakat bilmen gereken şu ki, tüm classlar include olmalıdır.

    ilk sorunun cevabı ise şu,

    diyelim ki 3 araba için class yazacaksın. Her arabanın 4 tekeri ve 4 kapısı var diyelim. motoru da olur tabii ki, yani en parent class en genel özellikleri taşır.

    class Araba {
    protected $motor;
    protected $teker = 4;
    protected $kapi = 4;
    
    public function calistir() {
    //temel çalışma işlemleri...
    }
    }
    


    Diyelim ki 2 kapılı, şifre ile çalışabilen bir araba oluşturmak istedin, ama diğer özelliklerinin tümü üst classta yer alacak:

    class IkiKapiliAraba extends Araba {
    protected $kapi = 2;
    public function calistir();
    {
    if ($this->sifreSor()) //eğer şifre doğruysa
    {
    parent::calistir();
    }
    }
    
    private function sifreSor()
    {
    
    }
    }
    


    gördüğün gibi arabanın tamamını yeniden tanımlamadım, var olan araba classından yeni bir araba ürettim. subclass mantığı budur. "Inheritance" temel mantığı budur. Daha kolay dediğin yöntemde sürekli aynı kodu yazmaya kalkacaksın, object oriented yazmak istiyorsan ve kod tekrarı yapıyorsan biyerlerde hata yapıyorsun demektir.
    • serdar_alkan adlı üyenin fotoğrafı serdar_alkan
      Cevabınız için teşekkür ederim öncelikle. Daha kodlamaya başlamadım. Şu an tasarım aşamasındayım. İşte bu noktada takıldım. Yani bir class da yeni bir metot mu tanımlayım yoksa oluşturduğum bir class dan başka bir iş yapan bir başka class mı türeteyim noktasında. _autoloader ı biliyorum. Ancak birşey sormak istiyorum. autoloader içindeki class lar bir kere çağrılsın tüm sistemde kullanılsın gibi birşey var mı? Yani her ayrı sayfamda bu çağırıyı yapmak zorunda mıyım?
      12 yıl önce yazılmış
    • fka adlı üyenin fotoğrafı fka
      zaten bir autoloader ile class bir kere include olur. iki kere include edersen php hata verecektir.
      12 yıl önce yazılmış
    • serdar_alkan adlı üyenin fotoğrafı serdar_alkan
      Misal index.php de çağırdığım zaman, bu fonksiyonları icerik.php de de kullanabilir miyim? icerik.php de tekrar autoloder çağrısı yapmama gerek yok mu?
      12 yıl önce yazılmış
    • fka adlı üyenin fotoğrafı fka
      index.php ile icerik.php arasındaki bağ ile alakalı. fakat iki defa zaten include edemezsin. istesen de.
      12 yıl önce yazılmış