Ben bir genel OOP soru var.
Ben C # aşağıdaki sınıfları varsa
class Parent
{
public string val = "Parent";
public void getValue()
{
Console.WriteLine(this.val);
}
}
class Child:Parent
{
public string val = "Child";
}
Child child = new Child();
child.getValue();
Kod çıktısı: 'Ana'. Ben bu Veli nesneye işaret çünkü, değil anladığım kadarıyla?
Ben PHP5'ta aynı yaparsanız:
class ParentClass {
public $val = 'parent';
public function foo()
{
echo $this->val;
}
}
class ChildClass extends ParentClass {
public $val = 'child';
}
$a = new ChildClass();
$a->foo();
Sonuç 'çocuk' olacak.
Rağmen değiştirirsem
public $val = 'parent';
karşı
private $val = 'parent';
Daha sonra PHP 'üst' gösterecektir. C #, her zaman kamu hem de özel erişim değiştiricileri ile 'üst' dönün.
Bunun için herhangi bir neden var mı? Ve hangi davranış doğrudur?
Any useful links karşı read will be highly appreciated!
Teşekkür ederiz!