Доступ к приватным свойствам родительского класса, парадигма ООП или баг?

Adelf

Administrator
Команда форума
A1x
Насчет поведения Явы с protected - оно тоже правильное :)
определение в дочернем классе свойства закрывает для класса Son родительское свойство hello. И они продолжают работать как приваты. Если это сделать в C# и установить ReSharper, то он даст ворнинг - типа свойство Father::hello перекрыто в классе Son.
Разумеется, таких перекрытий следует избегать, ибо protected подразумевает, что оно может понадобиться потомкам.
А вот PHP ведет себя не очень правильно, но можно привыкнуть :) фактически, второе определение того же свойства в PHP работает просто как присвоение в конструкторе.
 

A1x

Новичок
Adelf
ага понятно благодарю :)
хотя после пхп такое поведение странно, сам бы не догадался, в пхп тут более интуитивно понятно как для меня

согласитесь странно когда свойство объявленное как протектед начинает вести себя как private без всяких предупреждений
 

Adelf

Administrator
Команда форума
A1x
оно ведет себя не совсем как private... (по крайней мере C# ворнинг сразу дает :) )
В общем, нефиг объявлять поле, которое и так уже есть в классе по наследству.
 
Сверху