Kamu / özel değişkenler PHP ve miras

0 Cevap php

Ben çıkış görüntülenir hangi yol hakkında bir sorum var.

<?php

class Base
{
    private $privattrib = "Private Attribute1";

    function GetAttrib()
    {
        echo $this->privattrib;
    }
}

class Derived extends Base
{
    private $privattrib = "bute";
    function GetAttrib()
    {
        parent::GetAttrib();    
    }
}

$b = new Base();
$d = new Derived();
$d->GetAttrib();

>

Yani yukarıdaki kod için ben bir kaç soru var:

  1. Ben üst çağırdığınızda :: GetAttrib (), $ bu değeri (Base adlı GetAttrib () yöntemi) artık bir Base nesnesi haline geliyor ya da hala bir Türetilmiş nesnedir?

  2. Çıktıya "Özel özellik1" dir. $ Bu Türetilmiş bir nesneye başvuruyorsa Özel nitelik taban sınıfta overrided olduğundan, ekranda "bute" olmamalıdır?

  3. Ben halka privaattrib hem değiştirirseniz, çıktı şimdi "bute" dir. Neden bu?

0 Cevap