Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Вызов метода дочернего класса, Подскажите )
leo184  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 24
Пользователь №: 27964
На форуме: 6 лет, 3 месяца, 2 дня
Карма:




Привет )

Почитал форумы, везде пишут что вызов метода из дочернего класса родительским невозможен, т.к. родительский ничего не знает о потомках, Но все же проверил и оказалось что дочерний метод вызывается.

Вопрос: Я читал какую то устаревшую информацию ?)
Насколько вообще корректен такой вызов ?

Спасибо )



PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26461
Пользователь №: 21350
На форуме: 7 лет, 5 месяцев, 8 дней
Карма: 739




это через жопу называется.


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Arh  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



146%
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2390
Пользователь №: 27172
На форуме: 6 лет, 4 месяца, 20 дней
Карма: 76




leo184
Покажи код


--------------------
:)
PMСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
leo184  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 24
Пользователь №: 27964
На форуме: 6 лет, 3 месяца, 2 дня
Карма:




Цитата (Arh @ 31.03.2017 - 12:05)
leo184
Покажи код

Сори, ступил ) Она у меня вызывается из объекта дочернего класса, поэтому работает.

Примерно так:

class first {
function isget() {
$this -> get();
}
}


class two extends first {
public function get() {
echo "Вызвалась";
}
}


$ec = new two();
$ec -> isget();


Насколько такой вызов корректен ?)

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
T1grOK  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 2798
Пользователь №: 24406
На форуме: 6 лет, 10 месяцев, 6 дней
Карма: 180




first бы сделать абстрактным, с абстрактным методом get


--------------------
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
PMПисьмо на e-mail пользователюСайт пользователя
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



c начала 2017 года в Новосибирске.
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 26461
Пользователь №: 21350
На форуме: 7 лет, 5 месяцев, 8 дней
Карма: 739




настолько, что часть твоего базового класса без дочернего без полезна.


--------------------
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql (TSql, BI OLAP, MDX), Git, SVN, CodeIgnater, Yii 2, JiRA, Redmine, Bitbucket, Composer
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Ron  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1361
Пользователь №: 41686
На форуме: 2 года, 13 дней
Карма: 25




Цитата (leo184 @ 31.03.2017 - 16:34)
Насколько такой вызов корректен ?)

Вполне корректен, если в классе first тоже реализован метод get(). Не имеет особого значения абстрактный он или нет. Короче, нельзя, чтобы родитель зависел от потомка, это нарушает всё что только можно в ООП и лишает всех достоинств перед процедуркой.
Цитата (leo184 @ 31.03.2017 - 15:42)

Почитал форумы, везде пишут что вызов метода из дочернего класса родительским невозможен

В случае со статическими классами это так. Нельзя вызвать дочерний метод из родительского через self, потому что родитель не знает ничего о своих потомках. Только если из потомка вызвать метод родителя, который вызовет через static метод этого же потомка. Идиотизм полнейший, за такое нужно просто чмырить, гнобить, е**ть, короче делать всё, чтобы таких программистов в отрасли не было.



--------------------
5.11.2017
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса