Почему можно переопределить переменные экземпляра в 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 является слабым языком типов, это возможно?

Ответы на вопрос(2)

Ваш ответ на вопрос