Видимість змінних у класі, PHPClub - клуб розробників PHP

Видимість змінних у класі

Є клас батьків "MyClass", є нащадок "MyClass2 extends MyClass". У конструкторі батьківського класу йде визначення змінної "$public", після цього йде виклик функції "a1()". У функції "a1()" відбувається приєднання файлу з класом нащадка. У конструкторі класу нащадка йде виклик функції "а2()". У функції "а2()" виводимо змінну "$public".

Проблема: при виведенні змінної з-під класу нащадка змінна не змінюватися. var_dump($obj) object(MyClass)#1 (1) < ["public"]=>string(1) "b" > var_dump($obj2) object(MyClass2)#2 (1) < ["public"]=>string(1) "a" >

Що я роблю не так?

Трудоголік
Laravel&PhpStorm

Духовність™

Просунутий новачок

Хоч і проблему вирішено, але все одно не зрозумів чому саме так.

Мануал: Ключове слово extends говорить про те, що створюваний клас є лише "розширенням" класу A, і не більше. Тобто B містить ті ж самі властивості і методи, що і A, але, крім них і ще деякі додаткові, "свої".

Як я розумію всі змінні теж повинні "йти" до класу нащадок? У класі батьки оголошуються змінні і з ними відбуваються якісь зміни, клас нащадок сідає в область батьківського класу, де йому доступні вже змінені значення змінних.