[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вызов метода дочернего класса
leo184
Привет )

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

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

Спасибо )



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

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Arh
leo184
Покажи код

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
leo184
Цитата (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();


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

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

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Игорь_Vasinsky
настолько, что часть твоего базового класса без дочернего без полезна.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Ron
Цитата (leo184 @ 31.03.2017 - 16:34)
Насколько такой вызов корректен ?)

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

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

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

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.