Por que é possível substituir variáveis de instância no PHP, mas não em Java?

Considere o código abaixo:

<?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

Como em outras linguagens, como Java, não será possível substituir a variável de instância, mas isso é possível no PHP.

É porque, como o PHP é uma linguagem de tipo fraco, é possível?

questionAnswers(2)

yourAnswerToTheQuestion