Вопрос Наследование в PHP - что там по памяти?

Регистрация
20 Янв 2013
Сообщения
99
Репутация
0
Спасибо
0
Монет
0
У меня возник такой странный вопрос. Допустим, класс A - дочерний класс родительского класса B. Пусть у B есть пару свойств, а у А - пару методов. Когда мы создаем объект класса В, то в него записываются свойства. Но мы можем еще использовать методы класса А, так как В их унаследовал. Но В будет брать их с родительского класса напрямую каким-то образом или же добавит (как бы скопирует с учетом прав) в созданный объект и будет использовать оттуда? Т. е., если создать много объектов класса В, то каждый объект будет хранить свойства класса В, но брать методы из одного класса А с учетом приватности, или же каждый объект будет иметь и свойства, и методы, как бы ссылаясь на разные ячейки памяти.

Если не понятно, приведу пример: В JavaScript функциональный стиль записывает в каждый объект и свойства и методы, а прототипный - только свойства (например, у класса Array есть прототип со всеми методами, чтобы каждый объект ссылался именно на него при использовании, а не создавал в каждом объекте эти методы). Поэтому прототипный стиль - быстрее и экономнее по памяти. А в PHP экономней будет, если все свойства и методы в один класс записать, или же в родительский общие свойства и методы, которые будут применимы для всех объектов, а в дочерний изменяемые (понятно, что это выглядит глупо, ну примем это за тест)? Понятно, что логичней будет использовать 2 способ, но по памяти что там как будет происходить? И да, я, наверно, не до конца понимаю принцип наследования. Как понимаю я: дочерний класс наследует данные родителя (как бы расширяет его), т. е. при использовании данных с дочернего класса сначала рассматриваются его данные, а затем уже родительского класса, с учетом приватности, естественно. Возможно, я написал тут чушь. Тогда прошу вас разъяснить мне, как правильно, если можно :) Спасибо.
 
Ты еще фибиначи в класс запихни и наследуй))) Все переменные хранятся в определенной ячейке, как и во всех языках. Но при том, что PHP язык типизирован, переменной можно присваивать любое значение на лету.
 
Назад
Сверху