考慮下面的代碼:爲什麼可以在PHP中重寫實例變量而不是在Java中?
<?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是弱類型語言所以可能嗎?
我沒票了,所以我不能碰到你的答案,但這是唯一一個遠程接近回答爲什麼在PHP中,超級伊娃被覆蓋的問題,而在Java et al,超級伊娃被陰影/隱藏(並且它們不完全相同)。 – BoltClock 2010-10-24 18:25:31