Si consideri il codice qui sotto:Perché è possibile sovrascrivere le variabili di istanza in PHP ma non in 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
Dal momento che in altri linguaggi come Java, non vi permetterà di ignorare la variabile di istanza, ma è possibile in PHP.
È perché poiché PHP è un linguaggio di tipo debole, quindi è possibile?
Ho perso i voti quindi non riesco a trovare la risposta, ma questo è l'unico che è lontanamente vicino a rispondere alla domanda sul perché in PHP, la superclasse ivar è sovrascritta mentre in Java e al, la superclasse ivar è ombreggiata/nascosta (e non sono esattamente la stessa cosa). – BoltClock