Нужно ли объявлять свойство в наследнике? Вопрос может совсем глупый, но всё же. Подскажите. В данном примере нужно ли объявлять свойство у наследника?class Company{ protected $company_id = NULL; //обязательно нужно указать ID организации public function setCompany($id){ $this->company_id = $id; }
public function getInfo(){ return $this->company_id; //... return data array company... } } class Department extends Company{ protected $company_id = NULL; //вот тут нужно? public function test(){ return $this->getInfo(); } } //$a1 = new Company(); //$a1->setCompany(100); $a2 = new Department(); $a2->setCompany(200); echo $a2->test();
Нет, в данном случае не нужно объявлять свойство $company_id в классе наследнике Department. Поскольку это свойство уже объявлено в родительском классе Company и помечено как protected, оно будет доступно и в классе Department.
Использование того же имени $company_id в классе Department необходимо только в случае, если в классе Department требуется иметь отдельное свойство с таким же именем, но с другими свойствами или методами. В противном случае можно использовать унаследованное свойство $company_id из класса Company.
Нет, в данном случае не нужно объявлять свойство $company_id в классе наследнике Department. Поскольку это свойство уже объявлено в родительском классе Company и помечено как protected, оно будет доступно и в классе Department.
Использование того же имени $company_id в классе Department необходимо только в случае, если в классе Department требуется иметь отдельное свойство с таким же именем, но с другими свойствами или методами. В противном случае можно использовать унаследованное свойство $company_id из класса Company.