PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 2
Gary Отправлено: 15 Ноября, 2014 - 14:29:57 • Тема: Как получить доступ к родительской переменной, если она перезаписана в досернем классе? • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 1136
LIME пишет:
этого не надо хотеть
ООП создано для облегчения работы а не всяческих хитровывернутых извращений
если это задача от препода то напиши этому идиоту любой бред ...получи свою незаслуженную двойку и забудь на всю жизнь
я если честно даже не уверен что надо чтото делать
вроде и так выведет что надо...не self же
но мне по тому самому подобные задачи


Не, не от препода, но все равно спасибо за намёк.

Выводит Second по тому как метод по умолчанию не переопределён в классе-наследнике и он подхватывает новое значение свойства. А по поводу self:: я как раз и думаю... но пока никак не могу выстроить этот вариант со статикой.
Gary Отправлено: 15 Ноября, 2014 - 12:50:58 • Тема: Как получить доступ к родительской переменной, если она перезаписана в досернем классе? • Форум: Объектно-ориентированное программирование

Ответов: 2
Просмотров: 1136
Ув. коллеги, помогите разобраться.

Нужно решить следующую задучу:

Получить доступ к родительской переменной в объекте наследника, в ситуации когда она перезаписана в дочернем классе?

Вот код...

PHP:
скопировать код в буфер обмена
  1.  
  2. class First {
  3.  
  4.       protected $number = "First";
  5.      
  6.       protected function getNumber() {
  7.          
  8.          return $this->number;
  9.  
  10.       }
  11.  
  12.    }
  13.  
  14.    class Second extends First {
  15.  
  16.       protected $number = "Second";
  17.  
  18.    }
  19.    
  20.    $first = new First;
  21.    
  22.    $second = new Second;
  23.  
  24.    // здесь нужно вывести "First"
  25.    echo $second->getNumber();
  26.  



Обязательное условие - нельзя менять свойства в этих классах и методы. Можно лишь путем дописывания новой части кода манипулировать.

Самое "умное" Не понял до чего я сам дорыл, это переопределить метод в дочернем классе и сделать его паблик. Но, это проблему не решает. Я вижу вывод лишь переписанного значения переменной $number.

В общем туплю уже второй день... срочно нужна помощь.

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB