以下のコードを検討してください。
<?php
class Base {
protected $name = "Base";
public function getName() {
return $this->name;
}
}
class Foo extends Base {
protected $name = "Foo";
}
$f = new Foo();
echo $f->getName(); // output: Foo
$b = new Base();
echo $b->getName(); // output: Base
Java などの他の言語ではインスタンス変数をオーバーライドできませんが、PHP では可能です。
PHPは型言語が弱いので可能なのでしょうか?